diff --git a/Cargo.lock b/Cargo.lock index afd7b900b34..e3768c18a13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5189,6 +5189,7 @@ dependencies = [ "alloy-primitives", "anyhow", "auto_impl", + "binary-merkle-tree", "derive_more 2.1.1", "gear-core", "gear-workspace-hack", @@ -5207,6 +5208,8 @@ dependencies = [ "serde_json", "sha3", "sp-core", + "sp-io", + "sp-runtime", "tap", ] @@ -5312,6 +5315,7 @@ dependencies = [ "alloy", "anyhow", "async-trait", + "binary-merkle-tree", "ethexe-common", "futures", "gear-core", @@ -5325,6 +5329,7 @@ dependencies = [ "rand 0.8.5", "roast-secp256k1-evm", "serde", + "sp-runtime", "tokio", "tracing", ] @@ -7549,7 +7554,7 @@ dependencies = [ "indexmap 2.13.0", "ipnet", "itertools 0.10.5", - "itertools 0.11.0", + "itertools 0.13.0", "js-sys", "jsonrpsee", "jsonrpsee-client-transport", diff --git a/ethexe/common/Cargo.toml b/ethexe/common/Cargo.toml index 29a6297f007..6e0d13354a5 100644 --- a/ethexe/common/Cargo.toml +++ b/ethexe/common/Cargo.toml @@ -7,8 +7,13 @@ license.workspace = true homepage.workspace = true repository.workspace = true +[package.metadata.cargo-shear] +# we need it for applying `disable_allocator` feature +ignored = ["sp-io"] + [dependencies] alloy-primitives = { workspace = true, features = ["serde"] } +binary-merkle-tree.workspace = true gear-core.workspace = true sp-core.workspace = true gprimitives.workspace = true @@ -16,6 +21,8 @@ parity-scale-codec.workspace = true scale-info = { workspace = true, features = ["derive"] } hex.workspace = true serde = { workspace = true, optional = true } +sp-runtime.workspace = true +sp-io = { workspace = true, features = ["disable_allocator"] } roast-secp256k1-evm.workspace = true derive_more.workspace = true anyhow.workspace = true diff --git a/ethexe/common/src/gear.rs b/ethexe/common/src/gear.rs index 17bc116424d..da828a89ede 100644 --- a/ethexe/common/src/gear.rs +++ b/ethexe/common/src/gear.rs @@ -27,6 +27,7 @@ use parity_scale_codec::{Decode, Encode}; use roast_secp256k1_evm::frost::keys::VerifiableSecretSharingCommitment; use scale_info::TypeInfo; use sha3::Digest as _; +use sp_runtime::traits::Keccak256 as SpRuntimeKeccak256; // TODO: support query from router. pub const COMPUTATION_THRESHOLD: u64 = 2_500_000_000; @@ -397,13 +398,20 @@ impl ToDigest for StateTransition { messages, } = self; + let value_claims: Vec<_> = value_claims + .iter() + .map(|value_claim| H256(value_claim.to_digest().0)) + .collect(); + let value_claims_merkle_root = + binary_merkle_tree::merkle_root_raw::(value_claims); + hasher.update(actor_id.to_address_lossy()); hasher.update(new_state_hash); hasher.update([*exited as u8]); hasher.update(inheritor.to_address_lossy()); hasher.update(value_to_receive.to_be_bytes()); hasher.update([*value_to_receive_negative_sign as u8]); - hasher.update(value_claims.to_digest()); + hasher.update(value_claims_merkle_root); hasher.update(messages.to_digest()); } } diff --git a/ethexe/contracts/src/IMirror.sol b/ethexe/contracts/src/IMirror.sol index 52a481692a6..82742d641b6 100644 --- a/ethexe/contracts/src/IMirror.sol +++ b/ethexe/contracts/src/IMirror.sol @@ -205,6 +205,21 @@ interface IMirror { */ error TransferLockedValueToInheritorExternalFailed(); + /** + * @dev Thrown when the value claimId (messageId) is already processed. + */ + error ValueClaimAlreadyProcessed(bytes32 messageId); + + /** + * @dev Thrown when the merkle root is not found for the state hash in MessageQueue smart contract. + */ + error ValueClaimMerkleRootNotFound(bytes32 stateHash); + + /** + * @dev Thrown when the merkle proof is invalid for value claims. + */ + error ValueClaimInvalidMerkleProof(); + error InitializerAlreadySet(); error IsSmallAlreadySet(); @@ -219,7 +234,7 @@ interface IMirror { /* # Functions section */ - /* # Operational functions */ + /* # View functions */ /** * @dev Returns the address of the `Router` contract, which is the sole authority @@ -255,6 +270,21 @@ interface IMirror { */ function initializer() external view returns (address); + /** + * @dev Returns the value claims merkle root for the specified state hash. + * Returns `bytes32(0)` if no merkle root was provided for the given state hash. + * @param stateHash Target state hash. + * @return merkleRoot Value claims merkle root for the specified state hash. + */ + function getValueClaimsMerkleRoot(bytes32 stateHash) external view returns (bytes32); + + /** + * @dev Checks if value claim was already processed. + * @param messageId Message ID to check. + * @return isProcessed `true` if value claim was already processed, `false` otherwise. + */ + function isValueClaimProcessed(bytes32 messageId) external view returns (bool); + /* # Primary Gear logic (external calls) */ /** @@ -311,6 +341,24 @@ interface IMirror { */ function transferLockedValueToInheritor() external; + /* # Primary Gear logic (external calls, pull-based methods) */ + + /** + * @dev Claims value from the message in the mailbox. + * @param stateHash The state hash for which to claim value. + * @param totalLeaves The total number of leaves in the merkle tree. + * @param leafIndex The index of the leaf for which to claim value. + * @param claim The value claim data. + * @param proof The merkle proof for the claim. + */ + function claimValue( + bytes32 stateHash, + uint256 totalLeaves, + uint256 leafIndex, + Gear.ValueClaim calldata claim, + bytes32[] calldata proof + ) external; + /* # Router-driven state and funds management */ /** diff --git a/ethexe/contracts/src/Mirror.sol b/ethexe/contracts/src/Mirror.sol index f303407a4fc..10516530788 100644 --- a/ethexe/contracts/src/Mirror.sol +++ b/ethexe/contracts/src/Mirror.sol @@ -9,6 +9,7 @@ import {ICallbacks} from "src/ICallbacks.sol"; import {IMirror} from "src/IMirror.sol"; import {IRouter} from "src/IRouter.sol"; import {IWrappedVara} from "src/IWrappedVara.sol"; +import {BinaryMerkleTree} from "src/libraries/BinaryMerkleTree.sol"; import {Gear} from "src/libraries/Gear.sol"; /** @@ -128,6 +129,9 @@ contract Mirror is IMirror { */ bool isSmall; + mapping(bytes32 stateHash => bytes32 merkleRoot) private _valueClaimsMerkleRoots; + mapping(bytes32 messageId => bool isProcessed) private _processedValueClaims; + /** * @dev Minimal constructor that only sets the immutable `Router` address. * @param _router The address of the `Router` contract. @@ -256,6 +260,27 @@ contract Mirror is IMirror { } } + /* # View functions */ + + /** + * @dev Returns the value claims merkle root for the specified state hash. + * Returns `bytes32(0)` if no merkle root was provided for the given state hash. + * @param _stateHash Target state hash. + * @return merkleRoot Value claims merkle root for the specified state hash. + */ + function getValueClaimsMerkleRoot(bytes32 _stateHash) external view returns (bytes32) { + return _valueClaimsMerkleRoots[_stateHash]; + } + + /** + * @dev Checks if value claim was already processed. + * @param _messageId Message ID to check. + * @return isProcessed `true` if value claim was already processed, `false` otherwise. + */ + function isValueClaimProcessed(bytes32 _messageId) external view returns (bool) { + return _processedValueClaims[_messageId]; + } + /* # Primary Gear logic (external calls) */ /** @@ -348,6 +373,44 @@ contract Mirror is IMirror { require(success, TransferLockedValueToInheritorExternalFailed()); } + /* # Primary Gear logic (external calls, pull-based methods) */ + + /** + * @dev Claims value from the message in the mailbox. + * @param _stateHash The state hash for which to claim value. + * @param _totalLeaves The total number of leaves in the merkle tree. + * @param _leafIndex The index of the leaf for which to claim value. + * @param _claim The value claim data. + * @param _proof The merkle proof for the claim. + */ + function claimValue( + bytes32 _stateHash, + uint256 _totalLeaves, + uint256 _leafIndex, + Gear.ValueClaim calldata _claim, + bytes32[] calldata _proof + ) external { + require(!_processedValueClaims[_claim.messageId], ValueClaimAlreadyProcessed(_claim.messageId)); + + bytes32 merkleRoot = _valueClaimsMerkleRoots[_stateHash]; + require(merkleRoot != bytes32(0), ValueClaimMerkleRootNotFound(_stateHash)); + + bytes32 claimHash = Gear.valueClaimHash(_claim.messageId, _claim.destination, _claim.value); + require( + BinaryMerkleTree.verifyProofCalldata(merkleRoot, _proof, _totalLeaves, _leafIndex, claimHash), + ValueClaimInvalidMerkleProof() + ); + + _processedValueClaims[_claim.messageId] = true; + + bool success = _transferEther(_claim.destination, _claim.value); + if (success) { + emit ValueClaimed(_claim.messageId, _claim.value); + } else { + emit ValueClaimFailed(_claim.messageId, _claim.value); + } + } + /* # Router-driven state and funds management */ /** @@ -412,9 +475,9 @@ contract Mirror is IMirror { bytes32 messagesHashesHash = _sendMessages(_transition.messages); /** - * @dev Send value for each claim. + * @dev Sets merkle root of value claims for the new state hash. */ - bytes32 valueClaimsHash = _claimValues(_transition.valueClaims); + _claimValues(_transition.newStateHash, _transition.valueClaimsMerkleRoot); /** * @dev Set inheritor if exited. @@ -442,7 +505,7 @@ contract Mirror is IMirror { _transition.inheritor, _transition.valueToReceive, _transition.valueToReceiveNegativeSign, - valueClaimsHash, + _transition.valueClaimsMerkleRoot, messagesHashesHash ); } @@ -923,36 +986,12 @@ contract Mirror is IMirror { // TODO (breathx): claimValues will fail if the program is exited: keep the funds on `Router`. /** - * @dev Internal function to claim values from messages in mailbox. - * It transfers value to each claim destination and emits appropriate events: - * - `ValueClaimed` event is emitted if transfer is successful - * - `ValueClaimFailed` event is emitted if transfer fails - * @param _claims The array of value claims to be claimed. - * @return claimsHash The hash of the claimed values. + * @dev Internal function to pass claim values from messages in mailbox as merkle root. + * @param _stateHash The state hash for which the values are claimed. + * @param _valueClaimsMerkleRoot The merkle root of value claims for the state hash. */ - function _claimValues(Gear.ValueClaim[] calldata _claims) private returns (bytes32 claimsHash) { - uint256 claimsLen = _claims.length; - uint256 claimsHashesSize = claimsLen * 32; - uint256 claimsHashesMemPtr = Memory.allocate(claimsHashesSize); - uint256 offset = 0; - - for (uint256 i = 0; i < claimsLen; i++) { - Gear.ValueClaim calldata claim = _claims[i]; - bytes32 claimHash = Gear.valueClaimHash(claim.messageId, claim.destination, claim.value); - Memory.writeWordAsBytes32(claimsHashesMemPtr, offset, claimHash); - unchecked { - offset += 32; - } - - bool success = _transferEther(claim.destination, claim.value); - if (success) { - emit ValueClaimed(claim.messageId, claim.value); - } else { - emit ValueClaimFailed(claim.messageId, claim.value); - } - } - - return Hashes.efficientKeccak256AsBytes32(claimsHashesMemPtr, 0, claimsHashesSize); + function _claimValues(bytes32 _stateHash, bytes32 _valueClaimsMerkleRoot) private { + _valueClaimsMerkleRoots[_stateHash] = _valueClaimsMerkleRoot; } // TODO (breathx): allow zero inheritor in `Router`. diff --git a/ethexe/contracts/src/libraries/BinaryMerkleTree.sol b/ethexe/contracts/src/libraries/BinaryMerkleTree.sol new file mode 100644 index 00000000000..99743508501 --- /dev/null +++ b/ethexe/contracts/src/libraries/BinaryMerkleTree.sol @@ -0,0 +1,161 @@ +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +pragma solidity ^0.8.33; + +import {Hashes} from "@openzeppelin/contracts/utils/cryptography/Hashes.sol"; + +/** + * @dev These functions deal with verification of Merkle Tree proofs. + * + * The tree and the proofs can be generated using our + * https://docs.rs/binary-merkle-tree[Rust library]. + * You will find a quickstart guide in the readme. + * + * https://github.com/paritytech/polkadot-sdk/blob/master/substrate/utils/binary-merkle-tree/src/lib.rs + */ +library BinaryMerkleTree { + /** + * @dev Verifies a Merkle proof against a given root hash. + * + * The proof is NOT expected to contain leaf hash as the first + * element, but only all adjacent nodes required to eventually by process of + * concatenating and hashing end up with given root hash. + * + * The proof must not contain the root hash. + * + * @param root Root hash of the Merkle tree. + * @param proof Merkle proof, which is an array of hashes. + * @param numberOfLeaves Total number of leaves in the Merkle tree. + * @param leafIndex Index of the leaf in the Merkle tree. + * @param leafHash Hash of the leaf to verify. + * @return isValid `true` if the proof is valid, `false` otherwise. + */ + function verifyProofCalldata( + bytes32 root, + bytes32[] calldata proof, + uint256 numberOfLeaves, + uint256 leafIndex, + bytes32 leafHash + ) internal pure returns (bool) { + if (leafIndex >= numberOfLeaves) { + return false; + } + + return processProofCalldata(proof, numberOfLeaves, leafIndex, leafHash) == root; + } + + /** + * @dev Processes a Merkle proof and returns the computed root hash. + * + * @param proof Merkle proof, which is an array of hashes. + * @param numberOfLeaves Total number of leaves in the Merkle tree. + * @param leafIndex Index of the leaf in the Merkle tree. + * @param leafHash Hash of the leaf to verify. + * @return computed Root hash of the Merkle tree. + */ + function processProofCalldata(bytes32[] calldata proof, uint256 numberOfLeaves, uint256 leafIndex, bytes32 leafHash) + internal + pure + returns (bytes32) + { + uint256 position = leafIndex; + uint256 width = numberOfLeaves; + bytes32 computed = leafHash; + + for (uint256 i = 0; i < proof.length; i++) { + bytes32 a = computed; + bytes32 b = proof[i]; + + uint256 positionPlusOne; + unchecked { + positionPlusOne = position + 1; + } + + // TODO: consider optimizing this (use OpenZeppelin's `commutativeKeccak256` instead of `efficientKeccak256`). + if (position % 2 == 1 || positionPlusOne == width) { + computed = Hashes.efficientKeccak256(b, a); + } else { + computed = Hashes.efficientKeccak256(a, b); + } + + position /= 2; + unchecked { + width = ((width - 1) / 2) + 1; + } + } + + return computed; + } + + /** + * @dev Verifies a Merkle proof against a given root hash. + * + * The proof is NOT expected to contain leaf hash as the first + * element, but only all adjacent nodes required to eventually by process of + * concatenating and hashing end up with given root hash. + * + * The proof must not contain the root hash. + * + * @param root Root hash of the Merkle tree. + * @param proof Merkle proof, which is an array of hashes. + * @param numberOfLeaves Total number of leaves in the Merkle tree. + * @param leafIndex Index of the leaf in the Merkle tree. + * @param leafHash Hash of the leaf to verify. + * @return isValid `true` if the proof is valid, `false` otherwise. + */ + function verifyProof( + bytes32 root, + bytes32[] memory proof, + uint256 numberOfLeaves, + uint256 leafIndex, + bytes32 leafHash + ) internal pure returns (bool) { + if (leafIndex >= numberOfLeaves) { + return false; + } + + return processProof(proof, numberOfLeaves, leafIndex, leafHash) == root; + } + + /** + * @dev Processes a Merkle proof and returns the computed root hash. + * + * @param proof Merkle proof, which is an array of hashes. + * @param numberOfLeaves Total number of leaves in the Merkle tree. + * @param leafIndex Index of the leaf in the Merkle tree. + * @param leafHash Hash of the leaf to verify. + * @return computed Root hash of the Merkle tree. + */ + function processProof(bytes32[] memory proof, uint256 numberOfLeaves, uint256 leafIndex, bytes32 leafHash) + internal + pure + returns (bytes32) + { + uint256 position = leafIndex; + uint256 width = numberOfLeaves; + bytes32 computed = leafHash; + + for (uint256 i = 0; i < proof.length; i++) { + bytes32 a = computed; + bytes32 b = proof[i]; + + uint256 positionPlusOne; + unchecked { + positionPlusOne = position + 1; + } + + // TODO: consider optimizing this (use OpenZeppelin's `commutativeKeccak256` instead of `efficientKeccak256`). + if (position % 2 == 1 || positionPlusOne == width) { + computed = Hashes.efficientKeccak256(b, a); + } else { + computed = Hashes.efficientKeccak256(a, b); + } + + position /= 2; + unchecked { + width = ((width - 1) / 2) + 1; + } + } + + return computed; + } +} diff --git a/ethexe/contracts/src/libraries/Gear.sol b/ethexe/contracts/src/libraries/Gear.sol index fd7021fb70e..2d77f2093dd 100644 --- a/ethexe/contracts/src/libraries/Gear.sol +++ b/ethexe/contracts/src/libraries/Gear.sol @@ -457,9 +457,9 @@ library Gear { */ bool valueToReceiveNegativeSign; /** - * @dev Array of value claims. + * @dev Merkle root of value claims. */ - ValueClaim[] valueClaims; + bytes32 valueClaimsMerkleRoot; /** * @dev Array of messages. */ diff --git a/ethexe/contracts/test/Base.t.sol b/ethexe/contracts/test/Base.t.sol index e264ffd699c..53736ff9fe8 100644 --- a/ethexe/contracts/test/Base.t.sol +++ b/ethexe/contracts/test/Base.t.sol @@ -304,14 +304,6 @@ contract Base is POCBaseTest { for (uint256 i = 0; i < _commitment.transitions.length; i++) { Gear.StateTransition memory _transition = _commitment.transitions[i]; - bytes memory _valueClaimsBytes; - for (uint256 j = 0; j < _transition.valueClaims.length; j++) { - Gear.ValueClaim memory claim = _transition.valueClaims[j]; - _valueClaimsBytes = bytes.concat( - _valueClaimsBytes, Gear.valueClaimHash(claim.messageId, claim.destination, claim.value) - ); - } - bytes memory _messagesHashesBytes; for (uint256 j = 0; j < _transition.messages.length; j++) { _messagesHashesBytes = bytes.concat(_messagesHashesBytes, Gear.messageHash(_transition.messages[j])); @@ -324,7 +316,7 @@ contract Base is POCBaseTest { _transition.inheritor, _transition.valueToReceive, _transition.valueToReceiveNegativeSign, - keccak256(_valueClaimsBytes), + _transition.valueClaimsMerkleRoot, keccak256(_messagesHashesBytes) ); } diff --git a/ethexe/contracts/test/POC.t.sol b/ethexe/contracts/test/POC.t.sol index 5ec8e8aba81..c656fc45a5e 100644 --- a/ethexe/contracts/test/POC.t.sol +++ b/ethexe/contracts/test/POC.t.sol @@ -240,7 +240,7 @@ contract POCTest is Base { address(0), // inheritor uint128(0), // value to receive false, // value to receive negative sign - new Gear.ValueClaim[](0), // value claims + bytes32(uint256(2)), // value claims _outgoingMessages // messages ); @@ -277,7 +277,7 @@ contract POCTest is Base { address(0), // inheritor 0, // value to receive false, // value to receive negative sign - new Gear.ValueClaim[](0), // value claims + bytes32(uint256(3)), // value claims _outgoingMessages // messages ); diff --git a/ethexe/ethereum/Cargo.toml b/ethexe/ethereum/Cargo.toml index 6632c40aec0..a57122f85e6 100644 --- a/ethexe/ethereum/Cargo.toml +++ b/ethexe/ethereum/Cargo.toml @@ -27,12 +27,14 @@ alloy = { workspace = true, features = [ "signers", "kzg", ] } +binary-merkle-tree.workspace = true futures.workspace = true log.workspace = true tracing.workspace = true tokio = { workspace = true, features = ["process"] } roast-secp256k1-evm.workspace = true serde.workspace = true +sp-runtime.workspace = true nonempty.workspace = true rand.workspace = true gear-workspace-hack.workspace = true diff --git a/ethexe/ethereum/abi/BatchMulticall.json b/ethexe/ethereum/abi/BatchMulticall.json index ecd4970f8a7..3c911786bc4 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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5\",\"dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX\"]}},\"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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3","urls":["bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5","dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX"],"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":[74985],"IWrappedVara":[75001]},"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":74986,"symbolAliases":[{"foreign":{"id":73349,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74985,"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":75002,"symbolAliases":[{"foreign":{"id":73351,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"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_$75001","typeString":"contract IWrappedVara"},"typeName":{"id":73559,"nodeType":"UserDefinedTypeName","pathNode":{"id":73558,"name":"IWrappedVara","nameLocations":["4885:12:153"],"nodeType":"IdentifierPath","referencedDeclaration":75001,"src":"4885:12:153"},"referencedDeclaration":75001,"src":"4885:12:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","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_$74985","typeString":"contract IRouter"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4926:11:153","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74679,"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":75001,"src":"4906:12:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75001_$","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_$75001","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_$74985","typeString":"contract IRouter"}},"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5270:13:153","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":74911,"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_$75001","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_$75001","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_$74985","typeString":"contract IRouter"},"typeName":{"id":73520,"nodeType":"UserDefinedTypeName","pathNode":{"id":73519,"name":"IRouter","nameLocations":["4598:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74985,"src":"4598:7:153"},"referencedDeclaration":74985,"src":"4598:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74985","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\":\"0x6c65c742fdc33e8ccc6b8557a3664798ff66461520ff86bd23176d0eb2c651e6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://ce3fd92cb789de14dd326ea038b8a0c9c8a2b23d8ba4a64b89f24bccea5623bf\",\"dweb:/ipfs/QmRZcbFDW6kzBUECKWoXXv4Hkdhbgs6YdSPHfBH4u6Znjp\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e\",\"dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE\"]}},\"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":"0x6c65c742fdc33e8ccc6b8557a3664798ff66461520ff86bd23176d0eb2c651e6","urls":["bzz-raw://ce3fd92cb789de14dd326ea038b8a0c9c8a2b23d8ba4a64b89f24bccea5623bf","dweb:/ipfs/QmRZcbFDW6kzBUECKWoXXv4Hkdhbgs6YdSPHfBH4u6Znjp"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7","urls":["bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e","dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE"],"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":[74440],"IRouter":[75030],"IWrappedVara":[75046]},"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":74441,"symbolAliases":[{"foreign":{"id":73347,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74440,"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":75031,"symbolAliases":[{"foreign":{"id":73349,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75030,"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":75047,"symbolAliases":[{"foreign":{"id":73351,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"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":74440,"src":"3789:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74440_$","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_$74440","typeString":"contract IMirror"}},"id":73475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3817:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74364,"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_$75046","typeString":"contract IWrappedVara"},"typeName":{"id":73559,"nodeType":"UserDefinedTypeName","pathNode":{"id":73558,"name":"IWrappedVara","nameLocations":["4885:12:153"],"nodeType":"IdentifierPath","referencedDeclaration":75046,"src":"4885:12:153"},"referencedDeclaration":75046,"src":"4885:12:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","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_$75030","typeString":"contract IRouter"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4926:11:153","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74724,"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":75046,"src":"4906:12:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75046_$","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_$75046","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_$75030","typeString":"contract IRouter"}},"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5270:13:153","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":74956,"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_$74440","typeString":"contract IMirror"},"typeName":{"id":73626,"nodeType":"UserDefinedTypeName","pathNode":{"id":73625,"name":"IMirror","nameLocations":["5401:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74440,"src":"5401:7:153"},"referencedDeclaration":74440,"src":"5401:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","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":74440,"src":"5418:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74440_$","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_$74440","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_$75046","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_$75046","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_$74440","typeString":"contract IMirror"}},"id":73665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5774:22:153","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":74384,"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_$74440","typeString":"contract IMirror"}},"id":73675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5898:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74364,"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_$75030","typeString":"contract IRouter"},"typeName":{"id":73520,"nodeType":"UserDefinedTypeName","pathNode":{"id":73519,"name":"IRouter","nameLocations":["4598:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":75030,"src":"4598:7:153"},"referencedDeclaration":75030,"src":"4598:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$75030","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 91b9ef586aa..57f22bc5c00 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":{"86282":[{"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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5\",\"dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX\"]},\"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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3","urls":["bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5","dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX"],"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":86284,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":86286,"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":86392,"exportedSymbols":{"DemoCaller":[86391],"IDemoCallbacks":[86404],"IMirror":[74395]},"nodeType":"SourceUnit","src":"74:1430:173","nodes":[{"id":86273,"nodeType":"PragmaDirective","src":"74:24:173","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":86275,"nodeType":"ImportDirective","src":"100:40:173","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":86392,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":86274,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"108:7:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86277,"nodeType":"ImportDirective","src":"141:55:173","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":86392,"sourceUnit":86405,"symbolAliases":[{"foreign":{"id":86276,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86404,"src":"149:14:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86391,"nodeType":"ContractDefinition","src":"198:1305:173","nodes":[{"id":86282,"nodeType":"VariableDeclaration","src":"242:41:173","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"267:16:173","scope":86391,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86281,"nodeType":"UserDefinedTypeName","pathNode":{"id":86280,"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":86284,"nodeType":"VariableDeclaration","src":"290:35:173","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"302:23:173","scope":86391,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86283,"name":"bool","nodeType":"ElementaryTypeName","src":"290:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86286,"nodeType":"VariableDeclaration","src":"331:30:173","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"343:18:173","scope":86391,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86285,"name":"bool","nodeType":"ElementaryTypeName","src":"331:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86290,"nodeType":"EventDefinition","src":"368:43:173","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"374:17:173","parameters":{"id":86289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86288,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"400:9:173","nodeType":"VariableDeclaration","scope":86290,"src":"392:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"391:19:173"}},{"id":86298,"nodeType":"EventDefinition","src":"417:71:173","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"423:12:173","parameters":{"id":86297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86292,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"444:9:173","nodeType":"VariableDeclaration","scope":86298,"src":"436:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86294,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"461:7:173","nodeType":"VariableDeclaration","scope":86298,"src":"455:13:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86293,"name":"bytes","nodeType":"ElementaryTypeName","src":"455:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86296,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"477:9:173","nodeType":"VariableDeclaration","scope":86298,"src":"470:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86295,"name":"bytes4","nodeType":"ElementaryTypeName","src":"470:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"435:52:173"}},{"id":86300,"nodeType":"ErrorDefinition","src":"494:27:173","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"500:18:173","parameters":{"id":86299,"nodeType":"ParameterList","parameters":[],"src":"518:2:173"}},{"id":86311,"nodeType":"FunctionDefinition","src":"527:88:173","nodes":[],"body":{"id":86310,"nodeType":"Block","src":"564:51:173","nodes":[],"statements":[{"expression":{"id":86308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86306,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86282,"src":"574:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86307,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86303,"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":86309,"nodeType":"ExpressionStatement","src":"574:34:173"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":86304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86303,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"547:15:173","nodeType":"VariableDeclaration","scope":86311,"src":"539:23:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86302,"nodeType":"UserDefinedTypeName","pathNode":{"id":86301,"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":86305,"nodeType":"ParameterList","parameters":[],"src":"564:0:173"},"scope":86391,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86318,"nodeType":"ModifierDefinition","src":"621:79:173","nodes":[],"body":{"id":86317,"nodeType":"Block","src":"651:49:173","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":86313,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86334,"src":"661:19:173","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":86314,"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":86315,"nodeType":"ExpressionStatement","src":"661:21:173"},{"id":86316,"nodeType":"PlaceholderStatement","src":"692:1:173"}]},"name":"onlyVaraEthProgram","nameLocation":"630:18:173","parameters":{"id":86312,"nodeType":"ParameterList","parameters":[],"src":"648:2:173"},"virtual":false,"visibility":"internal"},{"id":86334,"nodeType":"FunctionDefinition","src":"706:158:173","nodes":[],"body":{"id":86333,"nodeType":"Block","src":"751:113:173","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86321,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"765:3:173","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86322,"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":86325,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86282,"src":"787:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}],"id":86324,"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":86323,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:173","typeDescriptions":{}}},"id":86326,"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":86332,"nodeType":"IfStatement","src":"761:97:173","trueBody":{"id":86331,"nodeType":"Block","src":"806:52:173","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":86328,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86300,"src":"827:18:173","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86329,"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":86330,"nodeType":"RevertStatement","src":"820:27:173"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"715:19:173","parameters":{"id":86319,"nodeType":"ParameterList","parameters":[],"src":"734:2:173"},"returnParameters":{"id":86320,"nodeType":"ParameterList","parameters":[],"src":"751:0:173"},"scope":86391,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86351,"nodeType":"FunctionDefinition","src":"870:146:173","nodes":[],"body":{"id":86350,"nodeType":"Block","src":"931:85:173","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86345,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86336,"src":"994:7:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"977:3:173","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86344,"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":86346,"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":86347,"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":86341,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86282,"src":"948:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":86342,"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":86348,"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":86340,"id":86349,"nodeType":"Return","src":"941:68:173"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"879:10:173","parameters":{"id":86337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86336,"mutability":"mutable","name":"isPanic","nameLocation":"895:7:173","nodeType":"VariableDeclaration","scope":86351,"src":"890:12:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86335,"name":"bool","nodeType":"ElementaryTypeName","src":"890:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"889:14:173"},"returnParameters":{"id":86340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86351,"src":"922:7:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"921:9:173"},"scope":86391,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86368,"nodeType":"FunctionDefinition","src":"1081:166:173","nodes":[],"body":{"id":86367,"nodeType":"Block","src":"1156:91:173","nodes":[],"statements":[{"expression":{"id":86361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86359,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86284,"src":"1166:23:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86360,"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":86362,"nodeType":"ExpressionStatement","src":"1166:30:173"},{"eventCall":{"arguments":[{"id":86364,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86354,"src":"1230:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":86363,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86290,"src":"1212:17:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":86365,"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":86366,"nodeType":"EmitStatement","src":"1207:33:173"}]},"baseFunctions":[86403],"documentation":{"id":86352,"nodeType":"StructuredDocumentation","src":"1022:54:173","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":86357,"kind":"modifierInvocation","modifierName":{"id":86356,"name":"onlyVaraEthProgram","nameLocations":["1137:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86318,"src":"1137:18:173"},"nodeType":"ModifierInvocation","src":"1137:18:173"}],"name":"replyOn_methodName","nameLocation":"1090:18:173","parameters":{"id":86355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86354,"mutability":"mutable","name":"messageId","nameLocation":"1117:9:173","nodeType":"VariableDeclaration","scope":86368,"src":"1109:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1108:19:173"},"returnParameters":{"id":86358,"nodeType":"ParameterList","parameters":[],"src":"1156:0:173"},"scope":86391,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86390,"nodeType":"FunctionDefinition","src":"1253:248:173","nodes":[],"body":{"id":86389,"nodeType":"Block","src":"1400:101:173","nodes":[],"statements":[{"expression":{"id":86381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86379,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86286,"src":"1410:18:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86380,"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":86382,"nodeType":"ExpressionStatement","src":"1410:25:173"},{"eventCall":{"arguments":[{"id":86384,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86370,"src":"1464:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86385,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86372,"src":"1475:7:173","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":86386,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86374,"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":86383,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86298,"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":86387,"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":86388,"nodeType":"EmitStatement","src":"1446:48:173"}]},"baseFunctions":[73741],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":86377,"kind":"modifierInvocation","modifierName":{"id":86376,"name":"onlyVaraEthProgram","nameLocations":["1377:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86318,"src":"1377:18:173"},"nodeType":"ModifierInvocation","src":"1377:18:173"}],"name":"onErrorReply","nameLocation":"1262:12:173","parameters":{"id":86375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86370,"mutability":"mutable","name":"messageId","nameLocation":"1283:9:173","nodeType":"VariableDeclaration","scope":86390,"src":"1275:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1275:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86372,"mutability":"mutable","name":"payload","nameLocation":"1309:7:173","nodeType":"VariableDeclaration","scope":86390,"src":"1294:22:173","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86371,"name":"bytes","nodeType":"ElementaryTypeName","src":"1294:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86374,"mutability":"mutable","name":"replyCode","nameLocation":"1325:9:173","nodeType":"VariableDeclaration","scope":86390,"src":"1318:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86373,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1318:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1274:61:173"},"returnParameters":{"id":86378,"nodeType":"ParameterList","parameters":[],"src":"1400:0:173"},"scope":86391,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":86278,"name":"IDemoCallbacks","nameLocations":["221:14:173"],"nodeType":"IdentifierPath","referencedDeclaration":86404,"src":"221:14:173"},"id":86279,"nodeType":"InheritanceSpecifier","src":"221:14:173"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[86391,86404,73742],"name":"DemoCaller","nameLocation":"207:10:173","scope":86392,"usedErrors":[86300],"usedEvents":[86290,86298]}],"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:174:-:0;;;;;;;;;;;;;-1:-1:-1;;198:1305:174;;;;-1:-1:-1;;;;;198:1305:174;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:1305:174;;;;;;574:34;;198:1305;;;;;;;;574:34;198:1305;;;;;;;;;;;;;;;;;-1:-1:-1;198:1305:174;;;;;;-1:-1:-1;198:1305:174;;;;;-1:-1:-1;198:1305:174","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:174:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:174;;;;;;242:41;-1:-1:-1;;;;;198:1305:174;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:174;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:174;;;;621:79;;:::i;:::-;198:1305;;;;;;;;;1212:28;198:1305;;;;;;;1212:28;198:1305;;;;;;;-1:-1:-1;;198:1305:174;;;;;;;;;;;;;;;;;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:174;;;198:1305;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:174;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1451:43;621:79;198:1305;621:79;198:1305;621:79;;;:::i;:::-;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:174;;;1451:43;;;;198:1305;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;198:1305:174;;;;;-1:-1:-1;198:1305:174;706:158;787:16;-1:-1:-1;;;;;198:1305:174;765:10;:39;761:97;;706:158::o;761:97::-;827:20;;;;;;;","linkReferences":{},"immutableReferences":{"86614":[{"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\":\"0x6c65c742fdc33e8ccc6b8557a3664798ff66461520ff86bd23176d0eb2c651e6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://ce3fd92cb789de14dd326ea038b8a0c9c8a2b23d8ba4a64b89f24bccea5623bf\",\"dweb:/ipfs/QmRZcbFDW6kzBUECKWoXXv4Hkdhbgs6YdSPHfBH4u6Znjp\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e\",\"dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE\"]},\"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":"0x6c65c742fdc33e8ccc6b8557a3664798ff66461520ff86bd23176d0eb2c651e6","urls":["bzz-raw://ce3fd92cb789de14dd326ea038b8a0c9c8a2b23d8ba4a64b89f24bccea5623bf","dweb:/ipfs/QmRZcbFDW6kzBUECKWoXXv4Hkdhbgs6YdSPHfBH4u6Znjp"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7","urls":["bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e","dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE"],"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":86616,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":86618,"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":86724,"exportedSymbols":{"DemoCaller":[86723],"IDemoCallbacks":[86736],"IMirror":[74440]},"nodeType":"SourceUnit","src":"74:1430:174","nodes":[{"id":86605,"nodeType":"PragmaDirective","src":"74:24:174","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":86607,"nodeType":"ImportDirective","src":"100:40:174","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":86724,"sourceUnit":74441,"symbolAliases":[{"foreign":{"id":86606,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74440,"src":"108:7:174","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86609,"nodeType":"ImportDirective","src":"141:55:174","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":86724,"sourceUnit":86737,"symbolAliases":[{"foreign":{"id":86608,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86736,"src":"149:14:174","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86723,"nodeType":"ContractDefinition","src":"198:1305:174","nodes":[{"id":86614,"nodeType":"VariableDeclaration","src":"242:41:174","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"267:16:174","scope":86723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"},"typeName":{"id":86613,"nodeType":"UserDefinedTypeName","pathNode":{"id":86612,"name":"IMirror","nameLocations":["242:7:174"],"nodeType":"IdentifierPath","referencedDeclaration":74440,"src":"242:7:174"},"referencedDeclaration":74440,"src":"242:7:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"visibility":"public"},{"id":86616,"nodeType":"VariableDeclaration","src":"290:35:174","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"302:23:174","scope":86723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86615,"name":"bool","nodeType":"ElementaryTypeName","src":"290:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86618,"nodeType":"VariableDeclaration","src":"331:30:174","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"343:18:174","scope":86723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86617,"name":"bool","nodeType":"ElementaryTypeName","src":"331:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86622,"nodeType":"EventDefinition","src":"368:43:174","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"374:17:174","parameters":{"id":86621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86620,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"400:9:174","nodeType":"VariableDeclaration","scope":86622,"src":"392:17:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"391:19:174"}},{"id":86630,"nodeType":"EventDefinition","src":"417:71:174","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"423:12:174","parameters":{"id":86629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86624,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"444:9:174","nodeType":"VariableDeclaration","scope":86630,"src":"436:17:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86626,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"461:7:174","nodeType":"VariableDeclaration","scope":86630,"src":"455:13:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86625,"name":"bytes","nodeType":"ElementaryTypeName","src":"455:5:174","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86628,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"477:9:174","nodeType":"VariableDeclaration","scope":86630,"src":"470:16:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86627,"name":"bytes4","nodeType":"ElementaryTypeName","src":"470:6:174","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"435:52:174"}},{"id":86632,"nodeType":"ErrorDefinition","src":"494:27:174","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"500:18:174","parameters":{"id":86631,"nodeType":"ParameterList","parameters":[],"src":"518:2:174"}},{"id":86643,"nodeType":"FunctionDefinition","src":"527:88:174","nodes":[],"body":{"id":86642,"nodeType":"Block","src":"564:51:174","nodes":[],"statements":[{"expression":{"id":86640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86638,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86614,"src":"574:16:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86639,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86635,"src":"593:15:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"src":"574:34:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"id":86641,"nodeType":"ExpressionStatement","src":"574:34:174"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":86636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86635,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"547:15:174","nodeType":"VariableDeclaration","scope":86643,"src":"539:23:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"},"typeName":{"id":86634,"nodeType":"UserDefinedTypeName","pathNode":{"id":86633,"name":"IMirror","nameLocations":["539:7:174"],"nodeType":"IdentifierPath","referencedDeclaration":74440,"src":"539:7:174"},"referencedDeclaration":74440,"src":"539:7:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"visibility":"internal"}],"src":"538:25:174"},"returnParameters":{"id":86637,"nodeType":"ParameterList","parameters":[],"src":"564:0:174"},"scope":86723,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86650,"nodeType":"ModifierDefinition","src":"621:79:174","nodes":[],"body":{"id":86649,"nodeType":"Block","src":"651:49:174","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":86645,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86666,"src":"661:19:174","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":86646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:21:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86647,"nodeType":"ExpressionStatement","src":"661:21:174"},{"id":86648,"nodeType":"PlaceholderStatement","src":"692:1:174"}]},"name":"onlyVaraEthProgram","nameLocation":"630:18:174","parameters":{"id":86644,"nodeType":"ParameterList","parameters":[],"src":"648:2:174"},"virtual":false,"visibility":"internal"},{"id":86666,"nodeType":"FunctionDefinition","src":"706:158:174","nodes":[],"body":{"id":86665,"nodeType":"Block","src":"751:113:174","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86653,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"765:3:174","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"769:6:174","memberName":"sender","nodeType":"MemberAccess","src":"765:10:174","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":86657,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86614,"src":"787:16:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}],"id":86656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"779:7:174","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86655,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:174","typeDescriptions":{}}},"id":86658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:25:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"765:39:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86664,"nodeType":"IfStatement","src":"761:97:174","trueBody":{"id":86663,"nodeType":"Block","src":"806:52:174","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":86660,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86632,"src":"827:18:174","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"827:20:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":86662,"nodeType":"RevertStatement","src":"820:27:174"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"715:19:174","parameters":{"id":86651,"nodeType":"ParameterList","parameters":[],"src":"734:2:174"},"returnParameters":{"id":86652,"nodeType":"ParameterList","parameters":[],"src":"751:0:174"},"scope":86723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86683,"nodeType":"FunctionDefinition","src":"870:146:174","nodes":[],"body":{"id":86682,"nodeType":"Block","src":"931:85:174","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86677,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86668,"src":"994:7:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86675,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"977:3:174","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"981:12:174","memberName":"encodePacked","nodeType":"MemberAccess","src":"977:16:174","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:25:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":86679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1004:4:174","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":86673,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86614,"src":"948:16:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"id":86674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"965:11:174","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74364,"src":"948:28:174","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":86680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:61:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86672,"id":86681,"nodeType":"Return","src":"941:68:174"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"879:10:174","parameters":{"id":86669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86668,"mutability":"mutable","name":"isPanic","nameLocation":"895:7:174","nodeType":"VariableDeclaration","scope":86683,"src":"890:12:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86667,"name":"bool","nodeType":"ElementaryTypeName","src":"890:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"889:14:174"},"returnParameters":{"id":86672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86683,"src":"922:7:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86670,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"921:9:174"},"scope":86723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86700,"nodeType":"FunctionDefinition","src":"1081:166:174","nodes":[],"body":{"id":86699,"nodeType":"Block","src":"1156:91:174","nodes":[],"statements":[{"expression":{"id":86693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86691,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86616,"src":"1166:23:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1192:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1166:30:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86694,"nodeType":"ExpressionStatement","src":"1166:30:174"},{"eventCall":{"arguments":[{"id":86696,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86686,"src":"1230:9:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":86695,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86622,"src":"1212:17:174","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":86697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:28:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86698,"nodeType":"EmitStatement","src":"1207:33:174"}]},"baseFunctions":[86735],"documentation":{"id":86684,"nodeType":"StructuredDocumentation","src":"1022:54:174","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":86689,"kind":"modifierInvocation","modifierName":{"id":86688,"name":"onlyVaraEthProgram","nameLocations":["1137:18:174"],"nodeType":"IdentifierPath","referencedDeclaration":86650,"src":"1137:18:174"},"nodeType":"ModifierInvocation","src":"1137:18:174"}],"name":"replyOn_methodName","nameLocation":"1090:18:174","parameters":{"id":86687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86686,"mutability":"mutable","name":"messageId","nameLocation":"1117:9:174","nodeType":"VariableDeclaration","scope":86700,"src":"1109:17:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86685,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1108:19:174"},"returnParameters":{"id":86690,"nodeType":"ParameterList","parameters":[],"src":"1156:0:174"},"scope":86723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86722,"nodeType":"FunctionDefinition","src":"1253:248:174","nodes":[],"body":{"id":86721,"nodeType":"Block","src":"1400:101:174","nodes":[],"statements":[{"expression":{"id":86713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86711,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86618,"src":"1410:18:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1431:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1410:25:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86714,"nodeType":"ExpressionStatement","src":"1410:25:174"},{"eventCall":{"arguments":[{"id":86716,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86702,"src":"1464:9:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86717,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86704,"src":"1475:7:174","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":86718,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86706,"src":"1484:9:174","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":86715,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86630,"src":"1451:12:174","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes4_$returns$__$","typeString":"function (bytes32,bytes memory,bytes4)"}},"id":86719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:43:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86720,"nodeType":"EmitStatement","src":"1446:48:174"}]},"baseFunctions":[73741],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":86709,"kind":"modifierInvocation","modifierName":{"id":86708,"name":"onlyVaraEthProgram","nameLocations":["1377:18:174"],"nodeType":"IdentifierPath","referencedDeclaration":86650,"src":"1377:18:174"},"nodeType":"ModifierInvocation","src":"1377:18:174"}],"name":"onErrorReply","nameLocation":"1262:12:174","parameters":{"id":86707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86702,"mutability":"mutable","name":"messageId","nameLocation":"1283:9:174","nodeType":"VariableDeclaration","scope":86722,"src":"1275:17:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1275:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86704,"mutability":"mutable","name":"payload","nameLocation":"1309:7:174","nodeType":"VariableDeclaration","scope":86722,"src":"1294:22:174","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86703,"name":"bytes","nodeType":"ElementaryTypeName","src":"1294:5:174","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86706,"mutability":"mutable","name":"replyCode","nameLocation":"1325:9:174","nodeType":"VariableDeclaration","scope":86722,"src":"1318:16:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86705,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1318:6:174","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1274:61:174"},"returnParameters":{"id":86710,"nodeType":"ParameterList","parameters":[],"src":"1400:0:174"},"scope":86723,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":86610,"name":"IDemoCallbacks","nameLocations":["221:14:174"],"nodeType":"IdentifierPath","referencedDeclaration":86736,"src":"221:14:174"},"id":86611,"nodeType":"InheritanceSpecifier","src":"221:14:174"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[86723,86736,73742],"name":"DemoCaller","nameLocation":"207:10:174","scope":86724,"usedErrors":[86632],"usedEvents":[86622,86630]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":174} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Gear.json b/ethexe/ethereum/abi/Gear.json index 81b9d138cc0..f4c539f4cef 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:32292:169:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:32292:169:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1515:32292:169;;;;;;;2071:1;1515:32292;;;;;;;;;;-1:-1:-1;;1515:32292:169;;;;;;;1855:13;1515:32292;;;;;;-1:-1:-1;;1515:32292:169;;;;;;;2383:18;1515:32292;;;;;;-1:-1:-1;;1515:32292:169;;;;;2203:1;1515:32292;;;","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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5\",\"dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX\"]}},\"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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3","urls":["bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5","dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":84059,"exportedSymbols":{"ECDSA":[51038],"FROST":[40965],"Gear":[84058],"Hashes":[41483],"IRouter":[74985],"MessageHashUtils":[52237],"SafeCast":[55635],"SlotDerivation":[48965],"Time":[60343],"TransientSlot":[50690]},"nodeType":"SourceUnit","src":"74:33734:169","nodes":[{"id":82806,"nodeType":"PragmaDirective","src":"74:24:169","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82808,"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":84059,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":82807,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"108:14:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82810,"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":84059,"sourceUnit":50691,"symbolAliases":[{"foreign":{"id":82809,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50690,"src":"189:13:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82812,"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":84059,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":82811,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"268:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82814,"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":84059,"sourceUnit":52238,"symbolAliases":[{"foreign":{"id":82813,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52237,"src":"344:16:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82816,"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":84059,"sourceUnit":55636,"symbolAliases":[{"foreign":{"id":82815,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"442:8:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82818,"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":84059,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":82817,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"516:4:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82820,"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":84059,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":82819,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"583:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82822,"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":84059,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":82821,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"636:6:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82824,"nodeType":"ImportDirective","src":"702:40:169","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":84059,"sourceUnit":74986,"symbolAliases":[{"foreign":{"id":82823,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74985,"src":"710:7:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84058,"nodeType":"ContractDefinition","src":"1515:32292:169","nodes":[{"id":82828,"nodeType":"UsingForDirective","src":"1534:24:169","nodes":[],"global":false,"libraryName":{"id":82826,"name":"ECDSA","nameLocations":["1540:5:169"],"nodeType":"IdentifierPath","referencedDeclaration":51038,"src":"1540:5:169"},"typeName":{"id":82827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1550:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":82831,"nodeType":"UsingForDirective","src":"1563:35:169","nodes":[],"global":false,"libraryName":{"id":82829,"name":"MessageHashUtils","nameLocations":["1569:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":52237,"src":"1569:16:169"},"typeName":{"id":82830,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":82833,"nodeType":"UsingForDirective","src":"1604:26:169","nodes":[],"global":false,"libraryName":{"id":82832,"name":"TransientSlot","nameLocations":["1610:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":50690,"src":"1610:13:169"}},{"id":82835,"nodeType":"UsingForDirective","src":"1635:27:169","nodes":[],"global":false,"libraryName":{"id":82834,"name":"SlotDerivation","nameLocations":["1641:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":48965,"src":"1641:14:169"}},{"id":82839,"nodeType":"VariableDeclaration","src":"1808:60:169","nodes":[],"constant":true,"documentation":{"id":82836,"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":84058,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":82837,"name":"uint64","nodeType":"ElementaryTypeName","src":"1808:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":82838,"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":82843,"nodeType":"VariableDeclaration","src":"2014:58:169","nodes":[],"constant":true,"documentation":{"id":82840,"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":84058,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82841,"name":"uint128","nodeType":"ElementaryTypeName","src":"2014:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":82842,"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":82847,"nodeType":"VariableDeclaration","src":"2144:60:169","nodes":[],"constant":true,"documentation":{"id":82844,"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":84058,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82845,"name":"uint128","nodeType":"ElementaryTypeName","src":"2144:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":82846,"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":82851,"nodeType":"VariableDeclaration","src":"2340:61:169","nodes":[],"constant":true,"documentation":{"id":82848,"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":84058,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82849,"name":"uint128","nodeType":"ElementaryTypeName","src":"2340:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":82850,"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":82854,"nodeType":"ErrorDefinition","src":"2528:32:169","nodes":[],"documentation":{"id":82852,"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":82853,"nodeType":"ParameterList","parameters":[],"src":"2557:2:169"}},{"id":82857,"nodeType":"ErrorDefinition","src":"2652:38:169","nodes":[],"documentation":{"id":82855,"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":82856,"nodeType":"ParameterList","parameters":[],"src":"2687:2:169"}},{"id":82860,"nodeType":"ErrorDefinition","src":"2768:26:169","nodes":[],"documentation":{"id":82858,"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":82859,"nodeType":"ParameterList","parameters":[],"src":"2791:2:169"}},{"id":82863,"nodeType":"ErrorDefinition","src":"2883:35:169","nodes":[],"documentation":{"id":82861,"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":82862,"nodeType":"ParameterList","parameters":[],"src":"2915:2:169"}},{"id":82866,"nodeType":"ErrorDefinition","src":"3037:36:169","nodes":[],"documentation":{"id":82864,"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":82865,"nodeType":"ParameterList","parameters":[],"src":"3070:2:169"}},{"id":82869,"nodeType":"ErrorDefinition","src":"3251:36:169","nodes":[],"documentation":{"id":82867,"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":82868,"nodeType":"ParameterList","parameters":[],"src":"3284:2:169"}},{"id":82872,"nodeType":"ErrorDefinition","src":"3441:39:169","nodes":[],"documentation":{"id":82870,"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":82871,"nodeType":"ParameterList","parameters":[],"src":"3477:2:169"}},{"id":82878,"nodeType":"StructDefinition","src":"3714:72:169","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":82873,"nodeType":"StructuredDocumentation","src":"3507:202:169","text":" @dev Represents an aggregated public key.\n It checked with `FROST.isValidPublicKey(x, y)` in `Router._resetValidators(...)`,\n so we can be sure that it is valid."},"members":[{"constant":false,"id":82875,"mutability":"mutable","name":"x","nameLocation":"3759:1:169","nodeType":"VariableDeclaration","scope":82878,"src":"3751:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82874,"name":"uint256","nodeType":"ElementaryTypeName","src":"3751:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82877,"mutability":"mutable","name":"y","nameLocation":"3778:1:169","nodeType":"VariableDeclaration","scope":82878,"src":"3770:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82876,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"3721:19:169","scope":84058,"visibility":"public"},{"id":82899,"nodeType":"StructDefinition","src":"3855:1200:169","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":82879,"nodeType":"StructuredDocumentation","src":"3792:58:169","text":" @dev Represents validators information."},"members":[{"constant":false,"id":82883,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4245:19:169","nodeType":"VariableDeclaration","scope":82899,"src":"4225:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82882,"nodeType":"UserDefinedTypeName","pathNode":{"id":82881,"name":"AggregatedPublicKey","nameLocations":["4225:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82878,"src":"4225:19:169"},"referencedDeclaration":82878,"src":"4225:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82886,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4572:40:169","nodeType":"VariableDeclaration","scope":82899,"src":"4564:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82885,"name":"address","nodeType":"ElementaryTypeName","src":"4564:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82891,"mutability":"mutable","name":"map","nameLocation":"4830:3:169","nodeType":"VariableDeclaration","scope":82899,"src":"4805:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":82890,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":82888,"name":"address","nodeType":"ElementaryTypeName","src":"4813:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4805:24:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":82889,"name":"bool","nodeType":"ElementaryTypeName","src":"4824:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":82895,"mutability":"mutable","name":"list","nameLocation":"4922:4:169","nodeType":"VariableDeclaration","scope":82899,"src":"4912:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82893,"name":"address","nodeType":"ElementaryTypeName","src":"4912:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82894,"nodeType":"ArrayTypeName","src":"4912:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82898,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5032:16:169","nodeType":"VariableDeclaration","scope":82899,"src":"5024:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82897,"name":"uint256","nodeType":"ElementaryTypeName","src":"5024:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"3862:10:169","scope":84058,"visibility":"public"},{"id":82911,"nodeType":"StructDefinition","src":"5132:194:169","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":82900,"nodeType":"StructuredDocumentation","src":"5061:66:169","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":82903,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5184:19:169","nodeType":"VariableDeclaration","scope":82911,"src":"5164:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82902,"nodeType":"UserDefinedTypeName","pathNode":{"id":82901,"name":"AggregatedPublicKey","nameLocations":["5164:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82878,"src":"5164:19:169"},"referencedDeclaration":82878,"src":"5164:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82905,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5221:40:169","nodeType":"VariableDeclaration","scope":82911,"src":"5213:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82904,"name":"address","nodeType":"ElementaryTypeName","src":"5213:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82908,"mutability":"mutable","name":"list","nameLocation":"5281:4:169","nodeType":"VariableDeclaration","scope":82911,"src":"5271:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82906,"name":"address","nodeType":"ElementaryTypeName","src":"5271:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82907,"nodeType":"ArrayTypeName","src":"5271:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82910,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5303:16:169","nodeType":"VariableDeclaration","scope":82911,"src":"5295:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82909,"name":"uint256","nodeType":"ElementaryTypeName","src":"5295:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5139:14:169","scope":84058,"visibility":"public"},{"id":82922,"nodeType":"StructDefinition","src":"5397:353:169","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":82912,"nodeType":"StructuredDocumentation","src":"5332:60:169","text":" @dev Represents address book information."},"members":[{"constant":false,"id":82915,"mutability":"mutable","name":"mirror","nameLocation":"5512:6:169","nodeType":"VariableDeclaration","scope":82922,"src":"5504:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82914,"name":"address","nodeType":"ElementaryTypeName","src":"5504:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82918,"mutability":"mutable","name":"wrappedVara","nameLocation":"5619:11:169","nodeType":"VariableDeclaration","scope":82922,"src":"5611:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82917,"name":"address","nodeType":"ElementaryTypeName","src":"5611:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82921,"mutability":"mutable","name":"middleware","nameLocation":"5733:10:169","nodeType":"VariableDeclaration","scope":82922,"src":"5725:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82920,"name":"address","nodeType":"ElementaryTypeName","src":"5725:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5404:11:169","scope":84058,"visibility":"public"},{"id":82930,"nodeType":"StructDefinition","src":"5812:248:169","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":82923,"nodeType":"StructuredDocumentation","src":"5756:51:169","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":82926,"mutability":"mutable","name":"id","nameLocation":"5956:2:169","nodeType":"VariableDeclaration","scope":82930,"src":"5948:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5948:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82929,"mutability":"mutable","name":"valid","nameLocation":"6048:5:169","nodeType":"VariableDeclaration","scope":82930,"src":"6043:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82928,"name":"bool","nodeType":"ElementaryTypeName","src":"6043:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"5819:14:169","scope":84058,"visibility":"public"},{"id":82940,"nodeType":"StructDefinition","src":"6123:270:169","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":82931,"nodeType":"StructuredDocumentation","src":"6066:52:169","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":82936,"mutability":"mutable","name":"transitions","nameLocation":"6265:11:169","nodeType":"VariableDeclaration","scope":82940,"src":"6247:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83133_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82934,"nodeType":"UserDefinedTypeName","pathNode":{"id":82933,"name":"StateTransition","nameLocations":["6247:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":83133,"src":"6247:15:169"},"referencedDeclaration":83133,"src":"6247:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82935,"nodeType":"ArrayTypeName","src":"6247:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83133_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":82939,"mutability":"mutable","name":"head","nameLocation":"6382:4:169","nodeType":"VariableDeclaration","scope":82940,"src":"6374:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6374:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6130:15:169","scope":84058,"visibility":"public"},{"id":82952,"nodeType":"StructDefinition","src":"6461:189:169","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":82941,"nodeType":"StructuredDocumentation","src":"6399:57:169","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":82944,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"6519:19:169","nodeType":"VariableDeclaration","scope":82952,"src":"6499:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82943,"nodeType":"UserDefinedTypeName","pathNode":{"id":82942,"name":"AggregatedPublicKey","nameLocations":["6499:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82878,"src":"6499:19:169"},"referencedDeclaration":82878,"src":"6499:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82946,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"6554:33:169","nodeType":"VariableDeclaration","scope":82952,"src":"6548:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":82945,"name":"bytes","nodeType":"ElementaryTypeName","src":"6548:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82949,"mutability":"mutable","name":"validators","nameLocation":"6607:10:169","nodeType":"VariableDeclaration","scope":82952,"src":"6597:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82947,"name":"address","nodeType":"ElementaryTypeName","src":"6597:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82948,"nodeType":"ArrayTypeName","src":"6597:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82951,"mutability":"mutable","name":"eraIndex","nameLocation":"6635:8:169","nodeType":"VariableDeclaration","scope":82952,"src":"6627:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82950,"name":"uint256","nodeType":"ElementaryTypeName","src":"6627:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"6468:20:169","scope":84058,"visibility":"public"},{"id":82986,"nodeType":"StructDefinition","src":"6713:1206:169","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":82953,"nodeType":"StructuredDocumentation","src":"6656:52:169","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":82956,"mutability":"mutable","name":"blockHash","nameLocation":"6850:9:169","nodeType":"VariableDeclaration","scope":82986,"src":"6842:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6842:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82959,"mutability":"mutable","name":"blockTimestamp","nameLocation":"6978:14:169","nodeType":"VariableDeclaration","scope":82986,"src":"6971:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82958,"name":"uint48","nodeType":"ElementaryTypeName","src":"6971:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":82962,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7091:26:169","nodeType":"VariableDeclaration","scope":82986,"src":"7083:34:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82961,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7083:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82965,"mutability":"mutable","name":"expiry","nameLocation":"7353:6:169","nodeType":"VariableDeclaration","scope":82986,"src":"7347:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82964,"name":"uint8","nodeType":"ElementaryTypeName","src":"7347:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":82970,"mutability":"mutable","name":"chainCommitment","nameLocation":"7479:15:169","nodeType":"VariableDeclaration","scope":82986,"src":"7461:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82940_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":82968,"nodeType":"UserDefinedTypeName","pathNode":{"id":82967,"name":"ChainCommitment","nameLocations":["7461:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"7461:15:169"},"referencedDeclaration":82940,"src":"7461:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82940_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":82969,"nodeType":"ArrayTypeName","src":"7461:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82940_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":82975,"mutability":"mutable","name":"codeCommitments","nameLocation":"7606:15:169","nodeType":"VariableDeclaration","scope":82986,"src":"7589:32:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82930_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":82973,"nodeType":"UserDefinedTypeName","pathNode":{"id":82972,"name":"CodeCommitment","nameLocations":["7589:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82930,"src":"7589:14:169"},"referencedDeclaration":82930,"src":"7589:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":82974,"nodeType":"ArrayTypeName","src":"7589:16:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82930_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":82980,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"7745:17:169","nodeType":"VariableDeclaration","scope":82986,"src":"7725:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$82996_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":82978,"nodeType":"UserDefinedTypeName","pathNode":{"id":82977,"name":"RewardsCommitment","nameLocations":["7725:17:169"],"nodeType":"IdentifierPath","referencedDeclaration":82996,"src":"7725:17:169"},"referencedDeclaration":82996,"src":"7725:17:169","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":82979,"nodeType":"ArrayTypeName","src":"7725:19:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$82996_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":82985,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"7892:20:169","nodeType":"VariableDeclaration","scope":82986,"src":"7869:43:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82952_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":82983,"nodeType":"UserDefinedTypeName","pathNode":{"id":82982,"name":"ValidatorsCommitment","nameLocations":["7869:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":82952,"src":"7869:20:169"},"referencedDeclaration":82952,"src":"7869:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":82984,"nodeType":"ArrayTypeName","src":"7869:22:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82952_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"6720:15:169","scope":84058,"visibility":"public"},{"id":82996,"nodeType":"StructDefinition","src":"7984:144:169","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":82987,"nodeType":"StructuredDocumentation","src":"7925:54:169","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":82990,"mutability":"mutable","name":"operators","nameLocation":"8045:9:169","nodeType":"VariableDeclaration","scope":82996,"src":"8019:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83002_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":82989,"nodeType":"UserDefinedTypeName","pathNode":{"id":82988,"name":"OperatorRewardsCommitment","nameLocations":["8019:25:169"],"nodeType":"IdentifierPath","referencedDeclaration":83002,"src":"8019:25:169"},"referencedDeclaration":83002,"src":"8019:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83002_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":82993,"mutability":"mutable","name":"stakers","nameLocation":"8088:7:169","nodeType":"VariableDeclaration","scope":82996,"src":"8064:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":82992,"nodeType":"UserDefinedTypeName","pathNode":{"id":82991,"name":"StakerRewardsCommitment","nameLocations":["8064:23:169"],"nodeType":"IdentifierPath","referencedDeclaration":83012,"src":"8064:23:169"},"referencedDeclaration":83012,"src":"8064:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":82995,"mutability":"mutable","name":"timestamp","nameLocation":"8112:9:169","nodeType":"VariableDeclaration","scope":82996,"src":"8105:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82994,"name":"uint48","nodeType":"ElementaryTypeName","src":"8105:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"7991:17:169","scope":84058,"visibility":"public"},{"id":83002,"nodeType":"StructDefinition","src":"8202:86:169","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":82997,"nodeType":"StructuredDocumentation","src":"8134:63:169","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":82999,"mutability":"mutable","name":"amount","nameLocation":"8253:6:169","nodeType":"VariableDeclaration","scope":83002,"src":"8245:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82998,"name":"uint256","nodeType":"ElementaryTypeName","src":"8245:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83001,"mutability":"mutable","name":"root","nameLocation":"8277:4:169","nodeType":"VariableDeclaration","scope":83002,"src":"8269:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8269:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8209:25:169","scope":84058,"visibility":"public"},{"id":83012,"nodeType":"StructDefinition","src":"8360:128:169","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":83003,"nodeType":"StructuredDocumentation","src":"8294:61:169","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":83007,"mutability":"mutable","name":"distribution","nameLocation":"8417:12:169","nodeType":"VariableDeclaration","scope":83012,"src":"8401:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83018_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":83005,"nodeType":"UserDefinedTypeName","pathNode":{"id":83004,"name":"StakerRewards","nameLocations":["8401:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83018,"src":"8401:13:169"},"referencedDeclaration":83018,"src":"8401:13:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83018_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":83006,"nodeType":"ArrayTypeName","src":"8401:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83018_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":83009,"mutability":"mutable","name":"totalAmount","nameLocation":"8447:11:169","nodeType":"VariableDeclaration","scope":83012,"src":"8439:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83008,"name":"uint256","nodeType":"ElementaryTypeName","src":"8439:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83011,"mutability":"mutable","name":"token","nameLocation":"8476:5:169","nodeType":"VariableDeclaration","scope":83012,"src":"8468:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83010,"name":"address","nodeType":"ElementaryTypeName","src":"8468:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"8367:23:169","scope":84058,"visibility":"public"},{"id":83018,"nodeType":"StructDefinition","src":"8549:75:169","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":83013,"nodeType":"StructuredDocumentation","src":"8494:50:169","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":83015,"mutability":"mutable","name":"vault","nameLocation":"8588:5:169","nodeType":"VariableDeclaration","scope":83018,"src":"8580:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83014,"name":"address","nodeType":"ElementaryTypeName","src":"8580:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83017,"mutability":"mutable","name":"amount","nameLocation":"8611:6:169","nodeType":"VariableDeclaration","scope":83018,"src":"8603:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83016,"name":"uint256","nodeType":"ElementaryTypeName","src":"8603:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"8556:13:169","scope":84058,"visibility":"public"},{"id":83026,"nodeType":"EnumDefinition","src":"8699:960:169","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":83019,"nodeType":"StructuredDocumentation","src":"8630:64:169","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":83020,"nodeType":"StructuredDocumentation","src":"8724: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":83021,"name":"Unknown","nameLocation":"8993:7:169","nodeType":"EnumValue","src":"8993:7:169"},{"documentation":{"id":83022,"nodeType":"StructuredDocumentation","src":"9010: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":83023,"name":"ValidationRequested","nameLocation":"9484:19:169","nodeType":"EnumValue","src":"9484:19:169"},{"documentation":{"id":83024,"nodeType":"StructuredDocumentation","src":"9513:122:169","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":83025,"name":"Validated","nameLocation":"9644:9:169","nodeType":"EnumValue","src":"9644:9:169"}],"name":"CodeState","nameLocation":"8704:9:169"},{"id":83032,"nodeType":"StructDefinition","src":"9739:81:169","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":83027,"nodeType":"StructuredDocumentation","src":"9665:69:169","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":83029,"mutability":"mutable","name":"hash","nameLocation":"9783:4:169","nodeType":"VariableDeclaration","scope":83032,"src":"9775:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9775:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83031,"mutability":"mutable","name":"timestamp","nameLocation":"9804:9:169","nodeType":"VariableDeclaration","scope":83032,"src":"9797:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83030,"name":"uint48","nodeType":"ElementaryTypeName","src":"9797:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"9746:18:169","scope":84058,"visibility":"public"},{"id":83038,"nodeType":"StructDefinition","src":"9887:92:169","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":83033,"nodeType":"StructuredDocumentation","src":"9826:56:169","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":83035,"mutability":"mutable","name":"threshold","nameLocation":"9931:9:169","nodeType":"VariableDeclaration","scope":83038,"src":"9924:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":83034,"name":"uint64","nodeType":"ElementaryTypeName","src":"9924:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":83037,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"9958:14:169","nodeType":"VariableDeclaration","scope":83038,"src":"9950:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83036,"name":"uint128","nodeType":"ElementaryTypeName","src":"9950:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"9894:19:169","scope":84058,"visibility":"public"},{"id":83046,"nodeType":"StructDefinition","src":"10057:102:169","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":83039,"nodeType":"StructuredDocumentation","src":"9985:67:169","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":83041,"mutability":"mutable","name":"hash","nameLocation":"10099:4:169","nodeType":"VariableDeclaration","scope":83046,"src":"10091:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10091:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83043,"mutability":"mutable","name":"number","nameLocation":"10120:6:169","nodeType":"VariableDeclaration","scope":83046,"src":"10113:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":83042,"name":"uint32","nodeType":"ElementaryTypeName","src":"10113:6:169","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":83045,"mutability":"mutable","name":"timestamp","nameLocation":"10143:9:169","nodeType":"VariableDeclaration","scope":83046,"src":"10136:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83044,"name":"uint48","nodeType":"ElementaryTypeName","src":"10136:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10064:16:169","scope":84058,"visibility":"public"},{"id":83067,"nodeType":"StructDefinition","src":"10213:1092:169","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":83047,"nodeType":"StructuredDocumentation","src":"10165:43:169","text":" @dev Represents message."},"members":[{"constant":false,"id":83050,"mutability":"mutable","name":"id","nameLocation":"10338:2:169","nodeType":"VariableDeclaration","scope":83067,"src":"10330:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10330:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83053,"mutability":"mutable","name":"destination","nameLocation":"10534:11:169","nodeType":"VariableDeclaration","scope":83067,"src":"10526:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83052,"name":"address","nodeType":"ElementaryTypeName","src":"10526:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83056,"mutability":"mutable","name":"payload","nameLocation":"10629:7:169","nodeType":"VariableDeclaration","scope":83067,"src":"10623:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83055,"name":"bytes","nodeType":"ElementaryTypeName","src":"10623:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83059,"mutability":"mutable","name":"value","nameLocation":"10733:5:169","nodeType":"VariableDeclaration","scope":83067,"src":"10725:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83058,"name":"uint128","nodeType":"ElementaryTypeName","src":"10725:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83063,"mutability":"mutable","name":"replyDetails","nameLocation":"10981:12:169","nodeType":"VariableDeclaration","scope":83067,"src":"10968:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":83062,"nodeType":"UserDefinedTypeName","pathNode":{"id":83061,"name":"ReplyDetails","nameLocations":["10968:12:169"],"nodeType":"IdentifierPath","referencedDeclaration":83103,"src":"10968:12:169"},"referencedDeclaration":83103,"src":"10968:12:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":83066,"mutability":"mutable","name":"call","nameLocation":"11294:4:169","nodeType":"VariableDeclaration","scope":83067,"src":"11289:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83065,"name":"bool","nodeType":"ElementaryTypeName","src":"11289:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10220:7:169","scope":84058,"visibility":"public"},{"id":83095,"nodeType":"StructDefinition","src":"11369:1298:169","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":83068,"nodeType":"StructuredDocumentation","src":"11311:53:169","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":83074,"mutability":"mutable","name":"codes","nameLocation":"11643:5:169","nodeType":"VariableDeclaration","scope":83095,"src":"11613:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":83073,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11621:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"11613:29:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83072,"nodeType":"UserDefinedTypeName","pathNode":{"id":83071,"name":"CodeState","nameLocations":["11632:9:169"],"nodeType":"IdentifierPath","referencedDeclaration":83026,"src":"11632:9:169"},"referencedDeclaration":83026,"src":"11632:9:169","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":83079,"mutability":"mutable","name":"programs","nameLocation":"11861:8:169","nodeType":"VariableDeclaration","scope":83095,"src":"11833:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":83078,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83076,"name":"address","nodeType":"ElementaryTypeName","src":"11841:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"11833:27:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11852:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":83082,"mutability":"mutable","name":"programsCount","nameLocation":"11978:13:169","nodeType":"VariableDeclaration","scope":83095,"src":"11970:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83081,"name":"uint256","nodeType":"ElementaryTypeName","src":"11970:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83085,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12106:19:169","nodeType":"VariableDeclaration","scope":83095,"src":"12098:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83084,"name":"uint256","nodeType":"ElementaryTypeName","src":"12098:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83088,"mutability":"mutable","name":"maxValidators","nameLocation":"12224:13:169","nodeType":"VariableDeclaration","scope":83095,"src":"12217:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":83087,"name":"uint16","nodeType":"ElementaryTypeName","src":"12217:6:169","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":83091,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"12415:28:169","nodeType":"VariableDeclaration","scope":83095,"src":"12407:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83090,"name":"uint256","nodeType":"ElementaryTypeName","src":"12407:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83094,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"12631:29:169","nodeType":"VariableDeclaration","scope":83095,"src":"12623:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83093,"name":"uint256","nodeType":"ElementaryTypeName","src":"12623:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"11376:12:169","scope":84058,"visibility":"public"},{"id":83103,"nodeType":"StructDefinition","src":"12733:564:169","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":83096,"nodeType":"StructuredDocumentation","src":"12673:55:169","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":83099,"mutability":"mutable","name":"to","nameLocation":"12942:2:169","nodeType":"VariableDeclaration","scope":83103,"src":"12934:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12934:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83102,"mutability":"mutable","name":"code","nameLocation":"13286:4:169","nodeType":"VariableDeclaration","scope":83103,"src":"13279:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":83101,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13279:6:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"12740:12:169","scope":84058,"visibility":"public"},{"id":83133,"nodeType":"StructDefinition","src":"13574:1608:169","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":83104,"nodeType":"StructuredDocumentation","src":"13303: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":83107,"mutability":"mutable","name":"actorId","nameLocation":"13801:7:169","nodeType":"VariableDeclaration","scope":83133,"src":"13793:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83106,"name":"address","nodeType":"ElementaryTypeName","src":"13793:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83110,"mutability":"mutable","name":"newStateHash","nameLocation":"13982:12:169","nodeType":"VariableDeclaration","scope":83133,"src":"13974:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13974:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83113,"mutability":"mutable","name":"exited","nameLocation":"14089:6:169","nodeType":"VariableDeclaration","scope":83133,"src":"14084:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83112,"name":"bool","nodeType":"ElementaryTypeName","src":"14084:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83116,"mutability":"mutable","name":"inheritor","nameLocation":"14291:9:169","nodeType":"VariableDeclaration","scope":83133,"src":"14283:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83115,"name":"address","nodeType":"ElementaryTypeName","src":"14283:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83119,"mutability":"mutable","name":"valueToReceive","nameLocation":"14669:14:169","nodeType":"VariableDeclaration","scope":83133,"src":"14661:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83118,"name":"uint128","nodeType":"ElementaryTypeName","src":"14661:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83122,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"14965:26:169","nodeType":"VariableDeclaration","scope":83133,"src":"14960:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83121,"name":"bool","nodeType":"ElementaryTypeName","src":"14960:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83127,"mutability":"mutable","name":"valueClaims","nameLocation":"15077:11:169","nodeType":"VariableDeclaration","scope":83133,"src":"15064:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83173_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":83125,"nodeType":"UserDefinedTypeName","pathNode":{"id":83124,"name":"ValueClaim","nameLocations":["15064:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83173,"src":"15064:10:169"},"referencedDeclaration":83173,"src":"15064:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":83126,"nodeType":"ArrayTypeName","src":"15064:12:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83173_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"},{"constant":false,"id":83132,"mutability":"mutable","name":"messages","nameLocation":"15167:8:169","nodeType":"VariableDeclaration","scope":83133,"src":"15157:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83067_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":83130,"nodeType":"UserDefinedTypeName","pathNode":{"id":83129,"name":"Message","nameLocations":["15157:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83067,"src":"15157:7:169"},"referencedDeclaration":83067,"src":"15157:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_storage_ptr","typeString":"struct Gear.Message"}},"id":83131,"nodeType":"ArrayTypeName","src":"15157:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83067_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"13581:15:169","scope":84058,"visibility":"public"},{"id":83141,"nodeType":"StructDefinition","src":"15242:104:169","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":83134,"nodeType":"StructuredDocumentation","src":"15188:49:169","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":83136,"mutability":"mutable","name":"era","nameLocation":"15277:3:169","nodeType":"VariableDeclaration","scope":83141,"src":"15269:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83135,"name":"uint256","nodeType":"ElementaryTypeName","src":"15269:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83138,"mutability":"mutable","name":"election","nameLocation":"15298:8:169","nodeType":"VariableDeclaration","scope":83141,"src":"15290:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83137,"name":"uint256","nodeType":"ElementaryTypeName","src":"15290:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83140,"mutability":"mutable","name":"validationDelay","nameLocation":"15324:15:169","nodeType":"VariableDeclaration","scope":83141,"src":"15316:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83139,"name":"uint256","nodeType":"ElementaryTypeName","src":"15316:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"15249:9:169","scope":84058,"visibility":"public"},{"id":83153,"nodeType":"StructDefinition","src":"15416:171:169","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":83142,"nodeType":"StructuredDocumentation","src":"15352:59:169","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":83144,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15460:18:169","nodeType":"VariableDeclaration","scope":83153,"src":"15452:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83143,"name":"uint128","nodeType":"ElementaryTypeName","src":"15452:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83146,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15496:20:169","nodeType":"VariableDeclaration","scope":83153,"src":"15488:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83145,"name":"uint128","nodeType":"ElementaryTypeName","src":"15488:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83149,"mutability":"mutable","name":"validators0","nameLocation":"15537:11:169","nodeType":"VariableDeclaration","scope":83153,"src":"15526:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83148,"nodeType":"UserDefinedTypeName","pathNode":{"id":83147,"name":"Validators","nameLocations":["15526:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"15526:10:169"},"referencedDeclaration":82899,"src":"15526:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":83152,"mutability":"mutable","name":"validators1","nameLocation":"15569:11:169","nodeType":"VariableDeclaration","scope":83153,"src":"15558:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83151,"nodeType":"UserDefinedTypeName","pathNode":{"id":83150,"name":"Validators","nameLocations":["15558:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"15558:10:169"},"referencedDeclaration":82899,"src":"15558:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"15423:18:169","scope":84058,"visibility":"public"},{"id":83165,"nodeType":"StructDefinition","src":"15665:183:169","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":83154,"nodeType":"StructuredDocumentation","src":"15593:67:169","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":83156,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15713:18:169","nodeType":"VariableDeclaration","scope":83165,"src":"15705:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83155,"name":"uint128","nodeType":"ElementaryTypeName","src":"15705:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83158,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15749:20:169","nodeType":"VariableDeclaration","scope":83165,"src":"15741:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83157,"name":"uint128","nodeType":"ElementaryTypeName","src":"15741:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83161,"mutability":"mutable","name":"validators0","nameLocation":"15794:11:169","nodeType":"VariableDeclaration","scope":83165,"src":"15779:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83160,"nodeType":"UserDefinedTypeName","pathNode":{"id":83159,"name":"ValidatorsView","nameLocations":["15779:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82911,"src":"15779:14:169"},"referencedDeclaration":82911,"src":"15779:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":83164,"mutability":"mutable","name":"validators1","nameLocation":"15830:11:169","nodeType":"VariableDeclaration","scope":83165,"src":"15815:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83163,"nodeType":"UserDefinedTypeName","pathNode":{"id":83162,"name":"ValidatorsView","nameLocations":["15815:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82911,"src":"15815:14:169"},"referencedDeclaration":82911,"src":"15815:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"15672:22:169","scope":84058,"visibility":"public"},{"id":83173,"nodeType":"StructDefinition","src":"15910:104:169","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":83166,"nodeType":"StructuredDocumentation","src":"15854:51:169","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":83168,"mutability":"mutable","name":"messageId","nameLocation":"15946:9:169","nodeType":"VariableDeclaration","scope":83173,"src":"15938:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15938:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83170,"mutability":"mutable","name":"destination","nameLocation":"15973:11:169","nodeType":"VariableDeclaration","scope":83173,"src":"15965:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83169,"name":"address","nodeType":"ElementaryTypeName","src":"15965:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83172,"mutability":"mutable","name":"value","nameLocation":"16002:5:169","nodeType":"VariableDeclaration","scope":83173,"src":"15994:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83171,"name":"uint128","nodeType":"ElementaryTypeName","src":"15994:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"15917:10:169","scope":84058,"visibility":"public"},{"id":83195,"nodeType":"StructDefinition","src":"16094:436:169","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":83174,"nodeType":"StructuredDocumentation","src":"16020:69:169","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":83176,"mutability":"mutable","name":"vaultRegistry","nameLocation":"16170:13:169","nodeType":"VariableDeclaration","scope":83195,"src":"16162:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83175,"name":"address","nodeType":"ElementaryTypeName","src":"16162:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83178,"mutability":"mutable","name":"operatorRegistry","nameLocation":"16201:16:169","nodeType":"VariableDeclaration","scope":83195,"src":"16193:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83177,"name":"address","nodeType":"ElementaryTypeName","src":"16193:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83180,"mutability":"mutable","name":"networkRegistry","nameLocation":"16235:15:169","nodeType":"VariableDeclaration","scope":83195,"src":"16227:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83179,"name":"address","nodeType":"ElementaryTypeName","src":"16227:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83182,"mutability":"mutable","name":"middlewareService","nameLocation":"16268:17:169","nodeType":"VariableDeclaration","scope":83195,"src":"16260:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83181,"name":"address","nodeType":"ElementaryTypeName","src":"16260:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83184,"mutability":"mutable","name":"networkOptIn","nameLocation":"16303:12:169","nodeType":"VariableDeclaration","scope":83195,"src":"16295:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83183,"name":"address","nodeType":"ElementaryTypeName","src":"16295:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83186,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"16333:20:169","nodeType":"VariableDeclaration","scope":83195,"src":"16325:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83185,"name":"address","nodeType":"ElementaryTypeName","src":"16325:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83188,"mutability":"mutable","name":"operatorRewards","nameLocation":"16407:15:169","nodeType":"VariableDeclaration","scope":83195,"src":"16399:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83187,"name":"address","nodeType":"ElementaryTypeName","src":"16399:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83190,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"16440:18:169","nodeType":"VariableDeclaration","scope":83195,"src":"16432:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83189,"name":"address","nodeType":"ElementaryTypeName","src":"16432:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83192,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"16476:17:169","nodeType":"VariableDeclaration","scope":83195,"src":"16468:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83191,"name":"address","nodeType":"ElementaryTypeName","src":"16468:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83194,"mutability":"mutable","name":"vetoResolver","nameLocation":"16511:12:169","nodeType":"VariableDeclaration","scope":83195,"src":"16503:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83193,"name":"address","nodeType":"ElementaryTypeName","src":"16503:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16101:18:169","scope":84058,"visibility":"public"},{"id":83199,"nodeType":"EnumDefinition","src":"16603:55:169","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":83196,"nodeType":"StructuredDocumentation","src":"16536:62:169","text":" @dev Represents the type of signature used."},"members":[{"id":83197,"name":"FROST","nameLocation":"16632:5:169","nodeType":"EnumValue","src":"16632:5:169"},{"id":83198,"name":"ECDSA","nameLocation":"16647:5:169","nodeType":"EnumValue","src":"16647:5:169"}],"name":"SignatureType","nameLocation":"16608:13:169"},{"id":83216,"nodeType":"FunctionDefinition","src":"16870:185:169","nodes":[],"body":{"id":83215,"nodeType":"Block","src":"16972:83:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83211,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83202,"src":"17024:16:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83212,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83204,"src":"17042:5:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83209,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"16989:6:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":83210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16996:27:169","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41482,"src":"16989:34:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":83213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16989:59:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83208,"id":83214,"nodeType":"Return","src":"16982:66:169"}]},"documentation":{"id":83200,"nodeType":"StructuredDocumentation","src":"16664:201: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."},"implemented":true,"kind":"function","modifiers":[],"name":"chainCommitmentHash","nameLocation":"16879:19:169","parameters":{"id":83205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83202,"mutability":"mutable","name":"_transitionsHash","nameLocation":"16907:16:169","nodeType":"VariableDeclaration","scope":83216,"src":"16899:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16899:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83204,"mutability":"mutable","name":"_head","nameLocation":"16933:5:169","nodeType":"VariableDeclaration","scope":83216,"src":"16925:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16925:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16898:41:169"},"returnParameters":{"id":83208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83216,"src":"16963:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16963:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16962:9:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83233,"nodeType":"FunctionDefinition","src":"17224:336:169","nodes":[],"body":{"id":83232,"nodeType":"Block","src":"17312:248:169","nodes":[],"statements":[{"assignments":[83227],"declarations":[{"constant":false,"id":83227,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"17330:19:169","nodeType":"VariableDeclaration","scope":83232,"src":"17322:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17322:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83228,"nodeType":"VariableDeclarationStatement","src":"17322:27:169"},{"AST":{"nativeSrc":"17384:134:169","nodeType":"YulBlock","src":"17384:134:169","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17405:4:169","nodeType":"YulLiteral","src":"17405:4:169","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"17411:6:169","nodeType":"YulIdentifier","src":"17411:6:169"}],"functionName":{"name":"mstore","nativeSrc":"17398:6:169","nodeType":"YulIdentifier","src":"17398:6:169"},"nativeSrc":"17398:20:169","nodeType":"YulFunctionCall","src":"17398:20:169"},"nativeSrc":"17398:20:169","nodeType":"YulExpressionStatement","src":"17398:20:169"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17439:4:169","nodeType":"YulLiteral","src":"17439:4:169","type":"","value":"0x20"},{"name":"valid","nativeSrc":"17445:5:169","nodeType":"YulIdentifier","src":"17445:5:169"}],"functionName":{"name":"mstore8","nativeSrc":"17431:7:169","nodeType":"YulIdentifier","src":"17431:7:169"},"nativeSrc":"17431:20:169","nodeType":"YulFunctionCall","src":"17431:20:169"},"nativeSrc":"17431:20:169","nodeType":"YulExpressionStatement","src":"17431:20:169"},{"nativeSrc":"17464:44:169","nodeType":"YulAssignment","src":"17464:44:169","value":{"arguments":[{"kind":"number","nativeSrc":"17497:4:169","nodeType":"YulLiteral","src":"17497:4:169","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17503:4:169","nodeType":"YulLiteral","src":"17503:4:169","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"17487:9:169","nodeType":"YulIdentifier","src":"17487:9:169"},"nativeSrc":"17487:21:169","nodeType":"YulFunctionCall","src":"17487:21:169"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"17464:19:169","nodeType":"YulIdentifier","src":"17464:19:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83227,"isOffset":false,"isSlot":false,"src":"17464:19:169","valueSize":1},{"declaration":83219,"isOffset":false,"isSlot":false,"src":"17411:6:169","valueSize":1},{"declaration":83221,"isOffset":false,"isSlot":false,"src":"17445:5:169","valueSize":1}],"flags":["memory-safe"],"id":83229,"nodeType":"InlineAssembly","src":"17359:159:169"},{"expression":{"id":83230,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83227,"src":"17534:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83225,"id":83231,"nodeType":"Return","src":"17527:26:169"}]},"documentation":{"id":83217,"nodeType":"StructuredDocumentation","src":"17061: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":"17233:18:169","parameters":{"id":83222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83219,"mutability":"mutable","name":"codeId","nameLocation":"17260:6:169","nodeType":"VariableDeclaration","scope":83233,"src":"17252:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17252:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83221,"mutability":"mutable","name":"valid","nameLocation":"17273:5:169","nodeType":"VariableDeclaration","scope":83233,"src":"17268:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83220,"name":"bool","nodeType":"ElementaryTypeName","src":"17268:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17251:28:169"},"returnParameters":{"id":83225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83233,"src":"17303:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17303:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17302:9:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83255,"nodeType":"FunctionDefinition","src":"17837:273:169","nodes":[],"body":{"id":83254,"nodeType":"Block","src":"18005:105:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83248,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83236,"src":"18049:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83249,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83238,"src":"18071:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83250,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83240,"src":"18091: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":83246,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18032:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18036:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18032: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":"18032:70: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":"18022: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":"18022:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83244,"id":83253,"nodeType":"Return","src":"18015:88:169"}]},"documentation":{"id":83234,"nodeType":"StructuredDocumentation","src":"17566: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":"17846:21:169","parameters":{"id":83241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83236,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"17876:20:169","nodeType":"VariableDeclaration","scope":83255,"src":"17868:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17868:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83238,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"17906:18:169","nodeType":"VariableDeclaration","scope":83255,"src":"17898:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17898:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83240,"mutability":"mutable","name":"_timestamp","nameLocation":"17933:10:169","nodeType":"VariableDeclaration","scope":83255,"src":"17926:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83239,"name":"uint48","nodeType":"ElementaryTypeName","src":"17926:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17867:77:169"},"returnParameters":{"id":83244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83255,"src":"17992:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17992:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17991:9:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83281,"nodeType":"FunctionDefinition","src":"18241:374:169","nodes":[],"body":{"id":83280,"nodeType":"Block","src":"18352:263:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":83267,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83259,"src":"18426:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18437:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82944,"src":"18426:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18457:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82875,"src":"18426:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83270,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83259,"src":"18476:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18487:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82944,"src":"18476:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18507:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82877,"src":"18476:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":83273,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83259,"src":"18526:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18537:10:169","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82949,"src":"18526:21:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":83275,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83259,"src":"18565:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18576:8:169","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82951,"src":"18565:19:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"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":83265,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18392:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18396:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18392:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18392:206:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83264,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18369:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18369:239:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83263,"id":83279,"nodeType":"Return","src":"18362:246:169"}]},"documentation":{"id":83256,"nodeType":"StructuredDocumentation","src":"18116:120:169","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"18250:24:169","parameters":{"id":83260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83259,"mutability":"mutable","name":"commitment","nameLocation":"18308:10:169","nodeType":"VariableDeclaration","scope":83281,"src":"18275:43:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":83258,"nodeType":"UserDefinedTypeName","pathNode":{"id":83257,"name":"Gear.ValidatorsCommitment","nameLocations":["18275:4:169","18280:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":82952,"src":"18275:25:169"},"referencedDeclaration":82952,"src":"18275:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"18274:45:169"},"returnParameters":{"id":83263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83281,"src":"18343:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18343:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18342:9:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83318,"nodeType":"FunctionDefinition","src":"19228:697:169","nodes":[],"body":{"id":83317,"nodeType":"Block","src":"19565:360:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83306,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83284,"src":"19639:6:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83307,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83286,"src":"19663:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":83308,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83288,"src":"19691:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83309,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83290,"src":"19728:7:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83310,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83292,"src":"19753:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83311,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83294,"src":"19791:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83312,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83296,"src":"19829:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83313,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19869: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":83304,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19605:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19609:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"19605:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19605:303: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":"19582:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19582:336:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83302,"id":83316,"nodeType":"Return","src":"19575:343:169"}]},"documentation":{"id":83282,"nodeType":"StructuredDocumentation","src":"18621: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":"19237:19:169","parameters":{"id":83299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83284,"mutability":"mutable","name":"_block","nameLocation":"19274:6:169","nodeType":"VariableDeclaration","scope":83318,"src":"19266:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19266:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83286,"mutability":"mutable","name":"_timestamp","nameLocation":"19297:10:169","nodeType":"VariableDeclaration","scope":83318,"src":"19290:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83285,"name":"uint48","nodeType":"ElementaryTypeName","src":"19290:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83288,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"19325:19:169","nodeType":"VariableDeclaration","scope":83318,"src":"19317:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19317:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83290,"mutability":"mutable","name":"_expiry","nameLocation":"19360:7:169","nodeType":"VariableDeclaration","scope":83318,"src":"19354:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83289,"name":"uint8","nodeType":"ElementaryTypeName","src":"19354:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83292,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"19385:20:169","nodeType":"VariableDeclaration","scope":83318,"src":"19377:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19377:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83294,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"19423:20:169","nodeType":"VariableDeclaration","scope":83318,"src":"19415:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19415:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83296,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"19461:22:169","nodeType":"VariableDeclaration","scope":83318,"src":"19453:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19453:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83298,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"19501:25:169","nodeType":"VariableDeclaration","scope":83318,"src":"19493:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19493:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19256:276:169"},"returnParameters":{"id":83302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83318,"src":"19556:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19556:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19555:9:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83350,"nodeType":"FunctionDefinition","src":"20056:407:169","nodes":[],"body":{"id":83349,"nodeType":"Block","src":"20133:330:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83330,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83322,"src":"20207:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20215:2:169","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83050,"src":"20207:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83332,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83322,"src":"20235:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20243:11:169","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"20235:19:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":83334,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83322,"src":"20272:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:7:169","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83056,"src":"20272:15:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":83336,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83322,"src":"20305:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20313:5:169","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"20305:13:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83338,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83322,"src":"20336:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20344:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"20336:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20357:2:169","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83099,"src":"20336:23:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":83341,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83322,"src":"20377:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20385:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"20377:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20398:4:169","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83102,"src":"20377:25:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":83344,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83322,"src":"20420:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20428:4:169","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"20420: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":83328,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20173:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20177:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20173:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20173:273: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":"20150:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20150:306:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83326,"id":83348,"nodeType":"Return","src":"20143:313:169"}]},"documentation":{"id":83319,"nodeType":"StructuredDocumentation","src":"19931: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":"20065:11:169","parameters":{"id":83323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83322,"mutability":"mutable","name":"message","nameLocation":"20092:7:169","nodeType":"VariableDeclaration","scope":83350,"src":"20077:22:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":83321,"nodeType":"UserDefinedTypeName","pathNode":{"id":83320,"name":"Message","nameLocations":["20077:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83067,"src":"20077:7:169"},"referencedDeclaration":83067,"src":"20077:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"20076:24:169"},"returnParameters":{"id":83326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83350,"src":"20124:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20124:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20123:9:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83372,"nodeType":"FunctionDefinition","src":"20670:199:169","nodes":[],"body":{"id":83371,"nodeType":"Block","src":"20784:85:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83365,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83353,"src":"20828:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83366,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83355,"src":"20840:12:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83367,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83357,"src":"20854: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":83363,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20811:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20815:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20811:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20811:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83362,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20801:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20801:61:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83361,"id":83370,"nodeType":"Return","src":"20794:68:169"}]},"documentation":{"id":83351,"nodeType":"StructuredDocumentation","src":"20469: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":"20679:14:169","parameters":{"id":83358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83353,"mutability":"mutable","name":"_messageId","nameLocation":"20702:10:169","nodeType":"VariableDeclaration","scope":83372,"src":"20694:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20694:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83355,"mutability":"mutable","name":"_destination","nameLocation":"20722:12:169","nodeType":"VariableDeclaration","scope":83372,"src":"20714:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83354,"name":"address","nodeType":"ElementaryTypeName","src":"20714:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83357,"mutability":"mutable","name":"_value","nameLocation":"20744:6:169","nodeType":"VariableDeclaration","scope":83372,"src":"20736:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83356,"name":"uint128","nodeType":"ElementaryTypeName","src":"20736:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"20693:58:169"},"returnParameters":{"id":83361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83372,"src":"20775:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20775:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20774:9:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83409,"nodeType":"FunctionDefinition","src":"21373:646:169","nodes":[],"body":{"id":83408,"nodeType":"Block","src":"21683:336:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83397,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83375,"src":"21757:5:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83398,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83377,"src":"21780:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83399,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83379,"src":"21810:6:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83400,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83381,"src":"21834:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83401,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83383,"src":"21861:14:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":83402,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83385,"src":"21893:26:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83403,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83387,"src":"21937:15:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83404,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83389,"src":"21970: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":83395,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21723:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21727:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"21723:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21723:279:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83394,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21700:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21700:312:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83393,"id":83407,"nodeType":"Return","src":"21693:319:169"}]},"documentation":{"id":83373,"nodeType":"StructuredDocumentation","src":"20875: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":"21382:19:169","parameters":{"id":83390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83375,"mutability":"mutable","name":"actor","nameLocation":"21419:5:169","nodeType":"VariableDeclaration","scope":83409,"src":"21411:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83374,"name":"address","nodeType":"ElementaryTypeName","src":"21411:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83377,"mutability":"mutable","name":"newStateHash","nameLocation":"21442:12:169","nodeType":"VariableDeclaration","scope":83409,"src":"21434:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21434:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83379,"mutability":"mutable","name":"exited","nameLocation":"21469:6:169","nodeType":"VariableDeclaration","scope":83409,"src":"21464:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83378,"name":"bool","nodeType":"ElementaryTypeName","src":"21464:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83381,"mutability":"mutable","name":"inheritor","nameLocation":"21493:9:169","nodeType":"VariableDeclaration","scope":83409,"src":"21485:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83380,"name":"address","nodeType":"ElementaryTypeName","src":"21485:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83383,"mutability":"mutable","name":"valueToReceive","nameLocation":"21520:14:169","nodeType":"VariableDeclaration","scope":83409,"src":"21512:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83382,"name":"uint128","nodeType":"ElementaryTypeName","src":"21512:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83385,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"21549:26:169","nodeType":"VariableDeclaration","scope":83409,"src":"21544:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83384,"name":"bool","nodeType":"ElementaryTypeName","src":"21544:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83387,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"21593:15:169","nodeType":"VariableDeclaration","scope":83409,"src":"21585:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21585:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83389,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"21626:18:169","nodeType":"VariableDeclaration","scope":83409,"src":"21618:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21618:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21401:249:169"},"returnParameters":{"id":83393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83409,"src":"21674:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21674:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21673:9:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83474,"nodeType":"FunctionDefinition","src":"22293:532:169","nodes":[],"body":{"id":83473,"nodeType":"Block","src":"22392:433:169","nodes":[],"statements":[{"assignments":[83420],"declarations":[{"constant":false,"id":83420,"mutability":"mutable","name":"start","nameLocation":"22410:5:169","nodeType":"VariableDeclaration","scope":83473,"src":"22402:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83419,"name":"uint256","nodeType":"ElementaryTypeName","src":"22402:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83425,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83421,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22418:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22424:6:169","memberName":"number","nodeType":"MemberAccess","src":"22418:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":83423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22433:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22418:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22402:32:169"},{"assignments":[83427],"declarations":[{"constant":false,"id":83427,"mutability":"mutable","name":"end","nameLocation":"22452:3:169","nodeType":"VariableDeclaration","scope":83473,"src":"22444:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83426,"name":"uint256","nodeType":"ElementaryTypeName","src":"22444:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83438,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83428,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83414,"src":"22458:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":83429,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22468:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22474:6:169","memberName":"number","nodeType":"MemberAccess","src":"22468:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22458:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83433,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22487:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22493:6:169","memberName":"number","nodeType":"MemberAccess","src":"22487:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":83435,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83414,"src":"22502:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"22487:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22458:50:169","trueExpression":{"hexValue":"30","id":83432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22483:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22444:64:169"},{"body":{"id":83469,"nodeType":"Block","src":"22553:243:169","statements":[{"assignments":[83447],"declarations":[{"constant":false,"id":83447,"mutability":"mutable","name":"ret","nameLocation":"22575:3:169","nodeType":"VariableDeclaration","scope":83469,"src":"22567:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22567:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83451,"initialValue":{"arguments":[{"id":83449,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83440,"src":"22591:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83448,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22581:9:169","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22567:26:169"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83452,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83447,"src":"22611:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83453,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83412,"src":"22618:4:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22611:11:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83458,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83447,"src":"22678:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22685:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22678:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83463,"nodeType":"IfStatement","src":"22674:52:169","trueBody":{"id":83462,"nodeType":"Block","src":"22688:38:169","statements":[{"id":83461,"nodeType":"Break","src":"22706:5:169"}]}},"id":83464,"nodeType":"IfStatement","src":"22607:119:169","trueBody":{"id":83457,"nodeType":"Block","src":"22624:44:169","statements":[{"expression":{"hexValue":"74727565","id":83455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22649:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83418,"id":83456,"nodeType":"Return","src":"22642:11:169"}]}},{"id":83468,"nodeType":"UncheckedBlock","src":"22740:46:169","statements":[{"expression":{"id":83466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"22768:3:169","subExpression":{"id":83465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83440,"src":"22768:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83467,"nodeType":"ExpressionStatement","src":"22768:3:169"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83443,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83440,"src":"22542:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83444,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83427,"src":"22547:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22542:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83470,"initializationExpression":{"assignments":[83440],"declarations":[{"constant":false,"id":83440,"mutability":"mutable","name":"i","nameLocation":"22531:1:169","nodeType":"VariableDeclaration","scope":83470,"src":"22523:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83439,"name":"uint256","nodeType":"ElementaryTypeName","src":"22523:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83442,"initialValue":{"id":83441,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83420,"src":"22535:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22523:17:169"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"22518:278:169"},{"expression":{"hexValue":"66616c7365","id":83471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22813:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83418,"id":83472,"nodeType":"Return","src":"22806:12:169"}]},"documentation":{"id":83410,"nodeType":"StructuredDocumentation","src":"22025: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":"22302:18:169","parameters":{"id":83415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83412,"mutability":"mutable","name":"hash","nameLocation":"22329:4:169","nodeType":"VariableDeclaration","scope":83474,"src":"22321:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22321:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83414,"mutability":"mutable","name":"expiry","nameLocation":"22341:6:169","nodeType":"VariableDeclaration","scope":83474,"src":"22335:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83413,"name":"uint8","nodeType":"ElementaryTypeName","src":"22335:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"22320:28:169"},"returnParameters":{"id":83418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83417,"mutability":"mutable","name":"isPredecessor","nameLocation":"22377:13:169","nodeType":"VariableDeclaration","scope":83474,"src":"22372:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83416,"name":"bool","nodeType":"ElementaryTypeName","src":"22372:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22371:20:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83487,"nodeType":"FunctionDefinition","src":"22970:222:169","nodes":[],"body":{"id":83486,"nodeType":"Block","src":"23079:113:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83482,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82839,"src":"23128:21:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":83483,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82851,"src":"23167:16:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83481,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83038,"src":"23096:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$83038_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":83484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23117:9:169","23151:14:169"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"23096:89:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":83480,"id":83485,"nodeType":"Return","src":"23089:96:169"}]},"documentation":{"id":83475,"nodeType":"StructuredDocumentation","src":"22831:134:169","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"22979:26:169","parameters":{"id":83476,"nodeType":"ParameterList","parameters":[],"src":"23005:2:169"},"returnParameters":{"id":83480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83479,"mutability":"mutable","name":"computationSettings","nameLocation":"23058:19:169","nodeType":"VariableDeclaration","scope":83487,"src":"23031:46:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":83478,"nodeType":"UserDefinedTypeName","pathNode":{"id":83477,"name":"ComputationSettings","nameLocations":["23031:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":83038,"src":"23031:19:169"},"referencedDeclaration":83038,"src":"23031:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"23030:48:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83510,"nodeType":"FunctionDefinition","src":"23318:229:169","nodes":[],"body":{"id":83509,"nodeType":"Block","src":"23405:142:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":83497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23466: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":83496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23458:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23458:7:169","typeDescriptions":{}}},"id":83498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23458:10:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":83501,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23496:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23502:6:169","memberName":"number","nodeType":"MemberAccess","src":"23496:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83499,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"23478:8:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$55635_$","typeString":"type(library SafeCast)"}},"id":83500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23487:8:169","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":54681,"src":"23478:17:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":83503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23478:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83504,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23522:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":83505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23527:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23522:14:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":83506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23522: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":83494,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83046,"src":"23434:16:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$83046_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":83507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23452:4:169","23470:6:169","23511:9:169"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"23434:106:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":83493,"id":83508,"nodeType":"Return","src":"23415:125:169"}]},"documentation":{"id":83488,"nodeType":"StructuredDocumentation","src":"23198: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":"23327:10:169","parameters":{"id":83489,"nodeType":"ParameterList","parameters":[],"src":"23337:2:169"},"returnParameters":{"id":83493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83492,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"23387:16:169","nodeType":"VariableDeclaration","scope":83510,"src":"23363:40:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":83491,"nodeType":"UserDefinedTypeName","pathNode":{"id":83490,"name":"GenesisBlockInfo","nameLocations":["23363:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"23363:16:169"},"referencedDeclaration":83046,"src":"23363:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"23362:42:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83760,"nodeType":"FunctionDefinition","src":"24038:3813:169","nodes":[],"body":{"id":83759,"nodeType":"Block","src":"24301:3550:169","nodes":[],"statements":[{"assignments":[83532],"declarations":[{"constant":false,"id":83532,"mutability":"mutable","name":"eraStarted","nameLocation":"24373:10:169","nodeType":"VariableDeclaration","scope":83759,"src":"24365:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83531,"name":"uint256","nodeType":"ElementaryTypeName","src":"24365:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83538,"initialValue":{"arguments":[{"id":83534,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83514,"src":"24399:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83535,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24407:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24413:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"24407: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":83533,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83993,"src":"24386: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":83537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24386:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24365:58:169"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83539,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83526,"src":"24437:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83540,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83532,"src":"24442:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24437:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24456:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24462:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"24456:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83544,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83532,"src":"24474:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83545,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83514,"src":"24487:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24494:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"24487:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24504:15:169","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":83140,"src":"24487:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24474:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24456:63:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24437:82:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83592,"nodeType":"Block","src":"24880:229:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83575,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83526,"src":"24902:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":83576,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24908:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24914:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"24908:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24902:21:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83579,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82860,"src":"24925:17:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24925:19:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83574,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24894:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24894:51:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83582,"nodeType":"ExpressionStatement","src":"24894:51:169"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83583,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83526,"src":"24964:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83584,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83532,"src":"24969:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24964:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83591,"nodeType":"IfStatement","src":"24960:69:169","trueBody":{"id":83590,"nodeType":"Block","src":"24981:48:169","statements":[{"expression":{"id":83588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83586,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83526,"src":"24999:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83587,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83532,"src":"25004:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24999:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83589,"nodeType":"ExpressionStatement","src":"24999:15:169"}]}}]},"id":83593,"nodeType":"IfStatement","src":"24433:676:169","trueBody":{"id":83573,"nodeType":"Block","src":"24521:353:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83552,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83526,"src":"24543:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":83553,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83514,"src":"24549:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24556:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"24549:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24569:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"24549:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"24543:35:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83557,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82854,"src":"24580:23:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24580:25:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24535:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24535:71:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83560,"nodeType":"ExpressionStatement","src":"24535:71:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83562,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83526,"src":"24628:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83563,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83514,"src":"24633:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24640:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"24633:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24650:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"24633:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24628:25:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83567,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83532,"src":"24657:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24628:39:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83569,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82857,"src":"24669:29:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24669:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24620:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24620:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83572,"nodeType":"ExpressionStatement","src":"24620:81:169"}]}},{"assignments":[83596],"declarations":[{"constant":false,"id":83596,"mutability":"mutable","name":"validators","nameLocation":"25190:10:169","nodeType":"VariableDeclaration","scope":83759,"src":"25171:29:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83595,"nodeType":"UserDefinedTypeName","pathNode":{"id":83594,"name":"Validators","nameLocations":["25171:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"25171:10:169"},"referencedDeclaration":82899,"src":"25171:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":83601,"initialValue":{"arguments":[{"id":83598,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83514,"src":"25216:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83599,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83526,"src":"25224: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":83597,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83832,"src":"25203:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25203:24:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25171:56:169"},{"assignments":[83603],"declarations":[{"constant":false,"id":83603,"mutability":"mutable","name":"_messageHash","nameLocation":"25245:12:169","nodeType":"VariableDeclaration","scope":83759,"src":"25237:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83602,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25237:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83611,"initialValue":{"arguments":[{"id":83609,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83518,"src":"25306:9:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":83606,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"25268:4:169","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$84058","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$84058","typeString":"library Gear"}],"id":83605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25260:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83604,"name":"address","nodeType":"ElementaryTypeName","src":"25260:7:169","typeDescriptions":{}}},"id":83607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25260:13:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25274:31:169","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":52224,"src":"25260: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":83610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25260:56:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25237:79:169"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"},"id":83615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83612,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83521,"src":"25331:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83613,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83199,"src":"25349:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83199_$","typeString":"type(enum Gear.SignatureType)"}},"id":83614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25363:5:169","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":83197,"src":"25349:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"}},"src":"25331:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"},"id":83668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83665,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83521,"src":"26527:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83666,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83199,"src":"26545:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83199_$","typeString":"type(enum Gear.SignatureType)"}},"id":83667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26559:5:169","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":83198,"src":"26545:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"}},"src":"26527:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83755,"nodeType":"IfStatement","src":"26523:1299:169","trueBody":{"id":83754,"nodeType":"Block","src":"26566:1256:169","statements":[{"assignments":[83670],"declarations":[{"constant":false,"id":83670,"mutability":"mutable","name":"threshold","nameLocation":"26588:9:169","nodeType":"VariableDeclaration","scope":83754,"src":"26580:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83669,"name":"uint256","nodeType":"ElementaryTypeName","src":"26580:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83682,"initialValue":{"arguments":[{"expression":{"expression":{"id":83672,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83596,"src":"26637:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26648:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82895,"src":"26637:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":83674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26653:6:169","memberName":"length","nodeType":"MemberAccess","src":"26637:22:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83675,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83514,"src":"26677:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26684:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"26677:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26703:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"26677:44:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83678,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83514,"src":"26739:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26746:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"26739:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26765:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83146,"src":"26739: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":83671,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83945,"src":"26600: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":83681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26600:199:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26580:219:169"},{"assignments":[83684],"declarations":[{"constant":false,"id":83684,"mutability":"mutable","name":"validSignatures","nameLocation":"26822:15:169","nodeType":"VariableDeclaration","scope":83754,"src":"26814:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83683,"name":"uint256","nodeType":"ElementaryTypeName","src":"26814:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83686,"initialValue":{"hexValue":"30","id":83685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26840:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26814:27:169"},{"body":{"id":83750,"nodeType":"Block","src":"26905:880:169","statements":[{"assignments":[83699],"declarations":[{"constant":false,"id":83699,"mutability":"mutable","name":"signature","nameLocation":"26938:9:169","nodeType":"VariableDeclaration","scope":83750,"src":"26923:24:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":83698,"name":"bytes","nodeType":"ElementaryTypeName","src":"26923:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83703,"initialValue":{"baseExpression":{"id":83700,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83524,"src":"26950:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83702,"indexExpression":{"id":83701,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"26962:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26950:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"26923:41:169"},{"assignments":[83705],"declarations":[{"constant":false,"id":83705,"mutability":"mutable","name":"validator","nameLocation":"26991:9:169","nodeType":"VariableDeclaration","scope":83750,"src":"26983:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83704,"name":"address","nodeType":"ElementaryTypeName","src":"26983:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83710,"initialValue":{"arguments":[{"id":83708,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83699,"src":"27024:9:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":83706,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83603,"src":"27003:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27016:7:169","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50794,"src":"27003: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":83709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27003:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"26983:51:169"},{"condition":{"baseExpression":{"expression":{"id":83711,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83596,"src":"27057:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27068:3:169","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82891,"src":"27057:14:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":83714,"indexExpression":{"id":83713,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83705,"src":"27072:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27057:25:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83749,"nodeType":"IfStatement","src":"27053:718:169","trueBody":{"id":83748,"nodeType":"Block","src":"27084:687:169","statements":[{"assignments":[83717],"declarations":[{"constant":false,"id":83717,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"27309:30:169","nodeType":"VariableDeclaration","scope":83748,"src":"27301:38:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27301: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":83722,"initialValue":{"arguments":[{"id":83720,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83705,"src":"27379:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":83718,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83516,"src":"27342:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27365:13:169","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":48892,"src":"27342: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":83721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27342:47:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27301:88:169"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83723,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83717,"src":"27416:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27447:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"27416: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":83725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27416:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27459:5:169","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":50612,"src":"27416: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":83727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27416:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83738,"nodeType":"Block","src":"27531:104:169","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":83735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27607:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83730,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83717,"src":"27557:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27588:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"27557: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":83733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27557:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27600:6:169","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":50623,"src":"27557: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":83736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27557:55:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83737,"nodeType":"ExpressionStatement","src":"27557:55:169"}]},"id":83739,"nodeType":"IfStatement","src":"27412:223:169","trueBody":{"id":83729,"nodeType":"Block","src":"27468:57:169","statements":[{"id":83728,"nodeType":"Continue","src":"27494:8:169"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27661:17:169","subExpression":{"id":83740,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83684,"src":"27663:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83742,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83670,"src":"27682:9:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27661:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83747,"nodeType":"IfStatement","src":"27657:96:169","trueBody":{"id":83746,"nodeType":"Block","src":"27693:60:169","statements":[{"expression":{"hexValue":"74727565","id":83744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27726:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83530,"id":83745,"nodeType":"Return","src":"27719:11:169"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83691,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"26876:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83692,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83524,"src":"26880:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26892:6:169","memberName":"length","nodeType":"MemberAccess","src":"26880:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26876:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83751,"initializationExpression":{"assignments":[83688],"declarations":[{"constant":false,"id":83688,"mutability":"mutable","name":"i","nameLocation":"26869:1:169","nodeType":"VariableDeclaration","scope":83751,"src":"26861:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83687,"name":"uint256","nodeType":"ElementaryTypeName","src":"26861:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83690,"initialValue":{"hexValue":"30","id":83689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26873:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26861:13:169"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26900:3:169","subExpression":{"id":83695,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"26900:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83697,"nodeType":"ExpressionStatement","src":"26900:3:169"},"nodeType":"ForStatement","src":"26856:929:169"},{"expression":{"hexValue":"66616c7365","id":83752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27806:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83530,"id":83753,"nodeType":"Return","src":"27799:12:169"}]}},"id":83756,"nodeType":"IfStatement","src":"25327:2495:169","trueBody":{"id":83664,"nodeType":"Block","src":"25370:1147:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83617,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83524,"src":"25392:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25404:6:169","memberName":"length","nodeType":"MemberAccess","src":"25392:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":83619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25414:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25392:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83621,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82863,"src":"25417:26:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25417:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83616,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25384:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25384:62:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83624,"nodeType":"ExpressionStatement","src":"25384:62:169"},{"assignments":[83626],"declarations":[{"constant":false,"id":83626,"mutability":"mutable","name":"_signature","nameLocation":"25474:10:169","nodeType":"VariableDeclaration","scope":83664,"src":"25461:23:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":83625,"name":"bytes","nodeType":"ElementaryTypeName","src":"25461:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83630,"initialValue":{"baseExpression":{"id":83627,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83524,"src":"25487:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83629,"indexExpression":{"hexValue":"30","id":83628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25499: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":"25487:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"25461:40:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83632,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83626,"src":"25523:10:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":83633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25534:6:169","memberName":"length","nodeType":"MemberAccess","src":"25523:17:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":83634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25544:2:169","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"25523:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83636,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82866,"src":"25548:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25548:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83631,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25515:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25515:63:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83639,"nodeType":"ExpressionStatement","src":"25515:63:169"},{"assignments":[83641],"declarations":[{"constant":false,"id":83641,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"25601:21:169","nodeType":"VariableDeclaration","scope":83664,"src":"25593:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83640,"name":"uint256","nodeType":"ElementaryTypeName","src":"25593:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83642,"nodeType":"VariableDeclarationStatement","src":"25593:29:169"},{"assignments":[83644],"declarations":[{"constant":false,"id":83644,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"25644:21:169","nodeType":"VariableDeclaration","scope":83664,"src":"25636:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83643,"name":"uint256","nodeType":"ElementaryTypeName","src":"25636:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83645,"nodeType":"VariableDeclarationStatement","src":"25636:29:169"},{"assignments":[83647],"declarations":[{"constant":false,"id":83647,"mutability":"mutable","name":"_signatureZ","nameLocation":"25687:11:169","nodeType":"VariableDeclaration","scope":83664,"src":"25679:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83646,"name":"uint256","nodeType":"ElementaryTypeName","src":"25679:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83648,"nodeType":"VariableDeclarationStatement","src":"25679:19:169"},{"AST":{"nativeSrc":"25738:215:169","nodeType":"YulBlock","src":"25738:215:169","statements":[{"nativeSrc":"25756:53:169","nodeType":"YulAssignment","src":"25756:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"25791:10:169","nodeType":"YulIdentifier","src":"25791:10:169"},{"kind":"number","nativeSrc":"25803:4:169","nodeType":"YulLiteral","src":"25803:4:169","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25787:3:169","nodeType":"YulIdentifier","src":"25787:3:169"},"nativeSrc":"25787:21:169","nodeType":"YulFunctionCall","src":"25787:21:169"}],"functionName":{"name":"mload","nativeSrc":"25781:5:169","nodeType":"YulIdentifier","src":"25781:5:169"},"nativeSrc":"25781:28:169","nodeType":"YulFunctionCall","src":"25781:28:169"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"25756:21:169","nodeType":"YulIdentifier","src":"25756:21:169"}]},{"nativeSrc":"25826:53:169","nodeType":"YulAssignment","src":"25826:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"25861:10:169","nodeType":"YulIdentifier","src":"25861:10:169"},{"kind":"number","nativeSrc":"25873:4:169","nodeType":"YulLiteral","src":"25873:4:169","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25857:3:169","nodeType":"YulIdentifier","src":"25857:3:169"},"nativeSrc":"25857:21:169","nodeType":"YulFunctionCall","src":"25857:21:169"}],"functionName":{"name":"mload","nativeSrc":"25851:5:169","nodeType":"YulIdentifier","src":"25851:5:169"},"nativeSrc":"25851:28:169","nodeType":"YulFunctionCall","src":"25851:28:169"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"25826:21:169","nodeType":"YulIdentifier","src":"25826:21:169"}]},{"nativeSrc":"25896:43:169","nodeType":"YulAssignment","src":"25896:43:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"25921:10:169","nodeType":"YulIdentifier","src":"25921:10:169"},{"kind":"number","nativeSrc":"25933:4:169","nodeType":"YulLiteral","src":"25933:4:169","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25917:3:169","nodeType":"YulIdentifier","src":"25917:3:169"},"nativeSrc":"25917:21:169","nodeType":"YulFunctionCall","src":"25917:21:169"}],"functionName":{"name":"mload","nativeSrc":"25911:5:169","nodeType":"YulIdentifier","src":"25911:5:169"},"nativeSrc":"25911:28:169","nodeType":"YulFunctionCall","src":"25911:28:169"},"variableNames":[{"name":"_signatureZ","nativeSrc":"25896:11:169","nodeType":"YulIdentifier","src":"25896:11:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83626,"isOffset":false,"isSlot":false,"src":"25791:10:169","valueSize":1},{"declaration":83626,"isOffset":false,"isSlot":false,"src":"25861:10:169","valueSize":1},{"declaration":83626,"isOffset":false,"isSlot":false,"src":"25921:10:169","valueSize":1},{"declaration":83641,"isOffset":false,"isSlot":false,"src":"25756:21:169","valueSize":1},{"declaration":83644,"isOffset":false,"isSlot":false,"src":"25826:21:169","valueSize":1},{"declaration":83647,"isOffset":false,"isSlot":false,"src":"25896:11:169","valueSize":1}],"flags":["memory-safe"],"id":83649,"nodeType":"InlineAssembly","src":"25713: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":83652,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83596,"src":"26273:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26284:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82883,"src":"26273:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26304:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82875,"src":"26273:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83655,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83596,"src":"26323:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26334:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82883,"src":"26323:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26354:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82877,"src":"26323:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83658,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83641,"src":"26373:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83659,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83644,"src":"26412:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83660,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83647,"src":"26451:11:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83661,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83603,"src":"26480: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":83650,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"26234:5:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":83651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26240:15:169","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":40964,"src":"26234: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":83662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26234:272:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83530,"id":83663,"nodeType":"Return","src":"26227:279:169"}]}},{"expression":{"hexValue":"66616c7365","id":83757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27839:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83530,"id":83758,"nodeType":"Return","src":"27832:12:169"}]},"documentation":{"id":83511,"nodeType":"StructuredDocumentation","src":"23553: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":"24047:20:169","parameters":{"id":83527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83514,"mutability":"mutable","name":"router","nameLocation":"24101:6:169","nodeType":"VariableDeclaration","scope":83760,"src":"24077:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83513,"nodeType":"UserDefinedTypeName","pathNode":{"id":83512,"name":"IRouter.Storage","nameLocations":["24077:7:169","24085:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"24077:15:169"},"referencedDeclaration":74490,"src":"24077:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83516,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"24125:22:169","nodeType":"VariableDeclaration","scope":83760,"src":"24117:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24117:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83518,"mutability":"mutable","name":"_dataHash","nameLocation":"24165:9:169","nodeType":"VariableDeclaration","scope":83760,"src":"24157:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24157:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83521,"mutability":"mutable","name":"_signatureType","nameLocation":"24198:14:169","nodeType":"VariableDeclaration","scope":83760,"src":"24184:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"},"typeName":{"id":83520,"nodeType":"UserDefinedTypeName","pathNode":{"id":83519,"name":"SignatureType","nameLocations":["24184:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83199,"src":"24184:13:169"},"referencedDeclaration":83199,"src":"24184:13:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":83524,"mutability":"mutable","name":"_signatures","nameLocation":"24239:11:169","nodeType":"VariableDeclaration","scope":83760,"src":"24222:28:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83522,"name":"bytes","nodeType":"ElementaryTypeName","src":"24222:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83523,"nodeType":"ArrayTypeName","src":"24222:7:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":83526,"mutability":"mutable","name":"ts","nameLocation":"24268:2:169","nodeType":"VariableDeclaration","scope":83760,"src":"24260:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83525,"name":"uint256","nodeType":"ElementaryTypeName","src":"24260:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24067:209:169"},"returnParameters":{"id":83530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83760,"src":"24295:4:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83528,"name":"bool","nodeType":"ElementaryTypeName","src":"24295:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24294:6:169"},"scope":84058,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":83777,"nodeType":"FunctionDefinition","src":"27970:166:169","nodes":[],"body":{"id":83776,"nodeType":"Block","src":"28075:61:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83771,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83764,"src":"28105:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83772,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28113:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28119:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"28113: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":83770,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83832,"src":"28092:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28092:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":83769,"id":83775,"nodeType":"Return","src":"28085:44:169"}]},"documentation":{"id":83761,"nodeType":"StructuredDocumentation","src":"27857: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":"27979:20:169","parameters":{"id":83765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83764,"mutability":"mutable","name":"router","nameLocation":"28024:6:169","nodeType":"VariableDeclaration","scope":83777,"src":"28000:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83763,"nodeType":"UserDefinedTypeName","pathNode":{"id":83762,"name":"IRouter.Storage","nameLocations":["28000:7:169","28008:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"28000:15:169"},"referencedDeclaration":74490,"src":"28000:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"27999:32:169"},"returnParameters":{"id":83769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83777,"src":"28055:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83767,"nodeType":"UserDefinedTypeName","pathNode":{"id":83766,"name":"Validators","nameLocations":["28055:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"28055:10:169"},"referencedDeclaration":82899,"src":"28055:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28054:20:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83804,"nodeType":"FunctionDefinition","src":"28342:322:169","nodes":[],"body":{"id":83803,"nodeType":"Block","src":"28448:216:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83788,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83781,"src":"28488:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83789,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28496:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28502:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"28496: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":83787,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83899,"src":"28462: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":83791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28462:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83801,"nodeType":"Block","src":"28589:69:169","statements":[{"expression":{"expression":{"expression":{"id":83797,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83781,"src":"28610:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28617:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"28610:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28636:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83152,"src":"28610:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83786,"id":83800,"nodeType":"Return","src":"28603:44:169"}]},"id":83802,"nodeType":"IfStatement","src":"28458:200:169","trueBody":{"id":83796,"nodeType":"Block","src":"28514:69:169","statements":[{"expression":{"expression":{"expression":{"id":83792,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83781,"src":"28535:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28542:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"28535:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28561:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83149,"src":"28535:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83786,"id":83795,"nodeType":"Return","src":"28528:44:169"}]}}]},"documentation":{"id":83778,"nodeType":"StructuredDocumentation","src":"28142: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":"28351:21:169","parameters":{"id":83782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83781,"mutability":"mutable","name":"router","nameLocation":"28397:6:169","nodeType":"VariableDeclaration","scope":83804,"src":"28373:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83780,"nodeType":"UserDefinedTypeName","pathNode":{"id":83779,"name":"IRouter.Storage","nameLocations":["28373:7:169","28381:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"28373:15:169"},"referencedDeclaration":74490,"src":"28373:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28372:32:169"},"returnParameters":{"id":83786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83804,"src":"28428:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83784,"nodeType":"UserDefinedTypeName","pathNode":{"id":83783,"name":"Validators","nameLocations":["28428:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"28428:10:169"},"referencedDeclaration":82899,"src":"28428:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28427:20:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83832,"nodeType":"FunctionDefinition","src":"28801:312:169","nodes":[],"body":{"id":83831,"nodeType":"Block","src":"28910:203:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83817,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83808,"src":"28950:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83818,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83810,"src":"28958: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":83816,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83899,"src":"28924: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":83819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83829,"nodeType":"Block","src":"29038:69:169","statements":[{"expression":{"expression":{"expression":{"id":83825,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83808,"src":"29059:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29066:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29059:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29085:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83149,"src":"29059:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83815,"id":83828,"nodeType":"Return","src":"29052:44:169"}]},"id":83830,"nodeType":"IfStatement","src":"28920:187:169","trueBody":{"id":83824,"nodeType":"Block","src":"28963:69:169","statements":[{"expression":{"expression":{"expression":{"id":83820,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83808,"src":"28984:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28991:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"28984:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29010:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83152,"src":"28984:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83815,"id":83823,"nodeType":"Return","src":"28977:44:169"}]}}]},"documentation":{"id":83805,"nodeType":"StructuredDocumentation","src":"28670: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":"28810:12:169","parameters":{"id":83811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83808,"mutability":"mutable","name":"router","nameLocation":"28847:6:169","nodeType":"VariableDeclaration","scope":83832,"src":"28823:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83807,"nodeType":"UserDefinedTypeName","pathNode":{"id":83806,"name":"IRouter.Storage","nameLocations":["28823:7:169","28831:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"28823:15:169"},"referencedDeclaration":74490,"src":"28823:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83810,"mutability":"mutable","name":"ts","nameLocation":"28863:2:169","nodeType":"VariableDeclaration","scope":83832,"src":"28855:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83809,"name":"uint256","nodeType":"ElementaryTypeName","src":"28855:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28822:44:169"},"returnParameters":{"id":83815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83832,"src":"28890:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83813,"nodeType":"UserDefinedTypeName","pathNode":{"id":83812,"name":"Validators","nameLocations":["28890:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"28890:10:169"},"referencedDeclaration":82899,"src":"28890:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28889:20:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83899,"nodeType":"FunctionDefinition","src":"29520:863:169","nodes":[],"body":{"id":83898,"nodeType":"Block","src":"29664:719:169","nodes":[],"statements":[{"assignments":[83844],"declarations":[{"constant":false,"id":83844,"mutability":"mutable","name":"ts0","nameLocation":"29682:3:169","nodeType":"VariableDeclaration","scope":83898,"src":"29674:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83843,"name":"uint256","nodeType":"ElementaryTypeName","src":"29674:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83849,"initialValue":{"expression":{"expression":{"expression":{"id":83845,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83836,"src":"29688:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29695:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29688:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29714:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83149,"src":"29688:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}},"id":83848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29726:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82898,"src":"29688:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29674:68:169"},{"assignments":[83851],"declarations":[{"constant":false,"id":83851,"mutability":"mutable","name":"ts1","nameLocation":"29760:3:169","nodeType":"VariableDeclaration","scope":83898,"src":"29752:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83850,"name":"uint256","nodeType":"ElementaryTypeName","src":"29752:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83856,"initialValue":{"expression":{"expression":{"expression":{"id":83852,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83836,"src":"29766:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29773:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29766:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29792:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83152,"src":"29766:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}},"id":83855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29804:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82898,"src":"29766:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29752:68:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83858,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83844,"src":"29894:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":83859,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83851,"src":"29901:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29894:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83861,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82869,"src":"29906:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29906:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83857,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29886:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29886:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83864,"nodeType":"ExpressionStatement","src":"29886:50:169"},{"assignments":[83866],"declarations":[{"constant":false,"id":83866,"mutability":"mutable","name":"ts1Greater","nameLocation":"29952:10:169","nodeType":"VariableDeclaration","scope":83898,"src":"29947:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83865,"name":"bool","nodeType":"ElementaryTypeName","src":"29947:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83870,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83867,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83844,"src":"29965:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83868,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83851,"src":"29971:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29965:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"29947:27:169"},{"assignments":[83872],"declarations":[{"constant":false,"id":83872,"mutability":"mutable","name":"tsGe0","nameLocation":"29989:5:169","nodeType":"VariableDeclaration","scope":83898,"src":"29984:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83871,"name":"bool","nodeType":"ElementaryTypeName","src":"29984:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83876,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83873,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83844,"src":"29997:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83874,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83838,"src":"30004:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29997:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"29984:22:169"},{"assignments":[83878],"declarations":[{"constant":false,"id":83878,"mutability":"mutable","name":"tsGe1","nameLocation":"30021:5:169","nodeType":"VariableDeclaration","scope":83898,"src":"30016:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83877,"name":"bool","nodeType":"ElementaryTypeName","src":"30016:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83882,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83879,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83851,"src":"30029:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83880,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83838,"src":"30036:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30029:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30016:22:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83884,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83872,"src":"30130:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":83885,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83878,"src":"30139:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30130:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83887,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82872,"src":"30146:30:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30146:32:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83883,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30122:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30122:57:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83890,"nodeType":"ExpressionStatement","src":"30122:57:169"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83891,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83866,"src":"30346:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83892,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83872,"src":"30361:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83893,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83878,"src":"30370:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30361:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":83895,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30360:16:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30346:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83842,"id":83897,"nodeType":"Return","src":"30339:37:169"}]},"documentation":{"id":83833,"nodeType":"StructuredDocumentation","src":"29119: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":"29529:25:169","parameters":{"id":83839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83836,"mutability":"mutable","name":"router","nameLocation":"29579:6:169","nodeType":"VariableDeclaration","scope":83899,"src":"29555:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83835,"nodeType":"UserDefinedTypeName","pathNode":{"id":83834,"name":"IRouter.Storage","nameLocations":["29555:7:169","29563:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"29555:15:169"},"referencedDeclaration":74490,"src":"29555:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83838,"mutability":"mutable","name":"ts","nameLocation":"29595:2:169","nodeType":"VariableDeclaration","scope":83899,"src":"29587:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83837,"name":"uint256","nodeType":"ElementaryTypeName","src":"29587:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29554:44:169"},"returnParameters":{"id":83842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83841,"mutability":"mutable","name":"isSlot1","nameLocation":"29651:7:169","nodeType":"VariableDeclaration","scope":83899,"src":"29646:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83840,"name":"bool","nodeType":"ElementaryTypeName","src":"29646:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29645:14:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83945,"nodeType":"FunctionDefinition","src":"30885:456:169","nodes":[],"body":{"id":83944,"nodeType":"Block","src":"31068:273:169","nodes":[],"statements":[{"assignments":[83912],"declarations":[{"constant":false,"id":83912,"mutability":"mutable","name":"a","nameLocation":"31086:1:169","nodeType":"VariableDeclaration","scope":83944,"src":"31078:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83911,"name":"uint256","nodeType":"ElementaryTypeName","src":"31078:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83913,"nodeType":"VariableDeclarationStatement","src":"31078:9:169"},{"id":83920,"nodeType":"UncheckedBlock","src":"31097:76:169","statements":[{"expression":{"id":83918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83914,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83912,"src":"31121:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83915,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83902,"src":"31125:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":83916,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83904,"src":"31144:18:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31125:37:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31121:41:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83919,"nodeType":"ExpressionStatement","src":"31121:41:169"}]},{"assignments":[83922],"declarations":[{"constant":false,"id":83922,"mutability":"mutable","name":"d","nameLocation":"31190:1:169","nodeType":"VariableDeclaration","scope":83944,"src":"31182:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83921,"name":"uint256","nodeType":"ElementaryTypeName","src":"31182:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83926,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83923,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83912,"src":"31194:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":83924,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83906,"src":"31198:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31194:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31182:36:169"},{"assignments":[83928],"declarations":[{"constant":false,"id":83928,"mutability":"mutable","name":"r","nameLocation":"31236:1:169","nodeType":"VariableDeclaration","scope":83944,"src":"31228:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83927,"name":"uint256","nodeType":"ElementaryTypeName","src":"31228:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83932,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83929,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83912,"src":"31240:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":83930,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83906,"src":"31244:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31240:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31228:36:169"},{"id":83943,"nodeType":"UncheckedBlock","src":"31274:61:169","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83933,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83928,"src":"31306:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":83934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31310:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31306:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":83936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31305:7:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83940,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83922,"src":"31323:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31305:19:169","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83937,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83922,"src":"31315:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31319:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"31315:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83910,"id":83942,"nodeType":"Return","src":"31298:26:169"}]}]},"documentation":{"id":83900,"nodeType":"StructuredDocumentation","src":"30389: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":"30894:19:169","parameters":{"id":83907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83902,"mutability":"mutable","name":"validatorsAmount","nameLocation":"30922:16:169","nodeType":"VariableDeclaration","scope":83945,"src":"30914:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83901,"name":"uint256","nodeType":"ElementaryTypeName","src":"30914:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83904,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"30948:18:169","nodeType":"VariableDeclaration","scope":83945,"src":"30940:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83903,"name":"uint128","nodeType":"ElementaryTypeName","src":"30940:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83906,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"30976:20:169","nodeType":"VariableDeclaration","scope":83945,"src":"30968:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83905,"name":"uint128","nodeType":"ElementaryTypeName","src":"30968:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"30913:84:169"},"returnParameters":{"id":83910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83909,"mutability":"mutable","name":"threshold","nameLocation":"31053:9:169","nodeType":"VariableDeclaration","scope":83945,"src":"31045:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83908,"name":"uint256","nodeType":"ElementaryTypeName","src":"31045:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31044:19:169"},"scope":84058,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83968,"nodeType":"FunctionDefinition","src":"31526:179:169","nodes":[],"body":{"id":83967,"nodeType":"Block","src":"31622:83:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83956,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83951,"src":"31640:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":83957,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83949,"src":"31645:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31652:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"31645:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31665:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"31645:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"31640:34:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83961,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31639:36:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":83962,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83949,"src":"31678:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31685:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"31678:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31695:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"31678:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31639:59:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83955,"id":83966,"nodeType":"Return","src":"31632:66:169"}]},"documentation":{"id":83946,"nodeType":"StructuredDocumentation","src":"31347: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":"31535:10:169","parameters":{"id":83952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83949,"mutability":"mutable","name":"router","nameLocation":"31570:6:169","nodeType":"VariableDeclaration","scope":83968,"src":"31546:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83948,"nodeType":"UserDefinedTypeName","pathNode":{"id":83947,"name":"IRouter.Storage","nameLocations":["31546:7:169","31554:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"31546:15:169"},"referencedDeclaration":74490,"src":"31546:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83951,"mutability":"mutable","name":"ts","nameLocation":"31586:2:169","nodeType":"VariableDeclaration","scope":83968,"src":"31578:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83950,"name":"uint256","nodeType":"ElementaryTypeName","src":"31578:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31545:44:169"},"returnParameters":{"id":83955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83954,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83968,"src":"31613:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83953,"name":"uint256","nodeType":"ElementaryTypeName","src":"31613:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31612:9:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83993,"nodeType":"FunctionDefinition","src":"31921:199:169","nodes":[],"body":{"id":83992,"nodeType":"Block","src":"32019:101:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83979,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83972,"src":"32036:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32043:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"32036:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32056:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"32036:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":83983,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83972,"src":"32079:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83984,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83974,"src":"32087: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":83982,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83968,"src":"32068: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":83985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32068:22:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":83986,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83972,"src":"32093:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32100:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"32093:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32110:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"32093:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32068:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32036:77:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83978,"id":83991,"nodeType":"Return","src":"32029:84:169"}]},"documentation":{"id":83969,"nodeType":"StructuredDocumentation","src":"31711: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":"31930:12:169","parameters":{"id":83975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83972,"mutability":"mutable","name":"router","nameLocation":"31967:6:169","nodeType":"VariableDeclaration","scope":83993,"src":"31943:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83971,"nodeType":"UserDefinedTypeName","pathNode":{"id":83970,"name":"IRouter.Storage","nameLocations":["31943:7:169","31951:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"31943:15:169"},"referencedDeclaration":74490,"src":"31943:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83974,"mutability":"mutable","name":"ts","nameLocation":"31983:2:169","nodeType":"VariableDeclaration","scope":83993,"src":"31975:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83973,"name":"uint256","nodeType":"ElementaryTypeName","src":"31975:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31942:44:169"},"returnParameters":{"id":83978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83993,"src":"32010:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83976,"name":"uint256","nodeType":"ElementaryTypeName","src":"32010:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32009:9:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84016,"nodeType":"FunctionDefinition","src":"32460:467:169","nodes":[],"body":{"id":84015,"nodeType":"Block","src":"32606:321:169","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":84005,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83997,"src":"32678:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32689:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82883,"src":"32678:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":84007,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83997,"src":"32764:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32775:40:169","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82886,"src":"32764:51:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":84009,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83997,"src":"32835:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32846:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82895,"src":"32835:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":84011,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83997,"src":"32882:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32893:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82898,"src":"32882:27:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_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":84003,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"32623:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":84004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32628:14:169","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":82911,"src":"32623:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$82911_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":84013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32657:19:169","32722:40:169","32829:4:169","32864:16:169"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"32623:297:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":84002,"id":84014,"nodeType":"Return","src":"32616:304:169"}]},"documentation":{"id":83994,"nodeType":"StructuredDocumentation","src":"32126: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":"32469:6:169","parameters":{"id":83998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83997,"mutability":"mutable","name":"validators","nameLocation":"32500:10:169","nodeType":"VariableDeclaration","scope":84016,"src":"32476:34:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83996,"nodeType":"UserDefinedTypeName","pathNode":{"id":83995,"name":"Gear.Validators","nameLocations":["32476:4:169","32481:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"32476:15:169"},"referencedDeclaration":82899,"src":"32476:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"32475:36:169"},"returnParameters":{"id":84002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84001,"mutability":"mutable","name":"validatorsView","nameLocation":"32586:14:169","nodeType":"VariableDeclaration","scope":84016,"src":"32559:41:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84000,"nodeType":"UserDefinedTypeName","pathNode":{"id":83999,"name":"Gear.ValidatorsView","nameLocations":["32559:4:169","32564:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82911,"src":"32559:19:169"},"referencedDeclaration":82911,"src":"32559:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"32558:43:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84057,"nodeType":"FunctionDefinition","src":"33224:581:169","nodes":[],"body":{"id":84056,"nodeType":"Block","src":"33382:423:169","nodes":[],"statements":[{"assignments":[84030],"declarations":[{"constant":false,"id":84030,"mutability":"mutable","name":"validators0","nameLocation":"33419:11:169","nodeType":"VariableDeclaration","scope":84056,"src":"33392:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84029,"nodeType":"UserDefinedTypeName","pathNode":{"id":84028,"name":"Gear.ValidatorsView","nameLocations":["33392:4:169","33397:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82911,"src":"33392:19:169"},"referencedDeclaration":82911,"src":"33392:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84035,"initialValue":{"arguments":[{"expression":{"id":84032,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84020,"src":"33440:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33449:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83149,"src":"33440:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}],"id":84031,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84016,84057],"referencedDeclaration":84016,"src":"33433:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$82899_storage_ptr_$returns$_t_struct$_ValidatorsView_$82911_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33433:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"33392:69:169"},{"assignments":[84040],"declarations":[{"constant":false,"id":84040,"mutability":"mutable","name":"validators1","nameLocation":"33498:11:169","nodeType":"VariableDeclaration","scope":84056,"src":"33471:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84039,"nodeType":"UserDefinedTypeName","pathNode":{"id":84038,"name":"Gear.ValidatorsView","nameLocations":["33471:4:169","33476:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82911,"src":"33471:19:169"},"referencedDeclaration":82911,"src":"33471:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84045,"initialValue":{"arguments":[{"expression":{"id":84042,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84020,"src":"33519:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33528:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83152,"src":"33519:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}],"id":84041,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84016,84057],"referencedDeclaration":84016,"src":"33512:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$82899_storage_ptr_$returns$_t_struct$_ValidatorsView_$82911_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33512:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"33471:69:169"},{"expression":{"arguments":[{"expression":{"id":84048,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84020,"src":"33619:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33628:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"33619:27:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":84050,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84020,"src":"33682:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33691:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83146,"src":"33682:29:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84052,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84030,"src":"33738:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":84053,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84040,"src":"33776:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$82911_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":84046,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"33557:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":84047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33562:22:169","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":83165,"src":"33557:27:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$83165_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":84054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["33599:18:169","33660:20:169","33725:11:169","33763:11:169"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"33557:241:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83165_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":84025,"id":84055,"nodeType":"Return","src":"33550:248:169"}]},"documentation":{"id":84017,"nodeType":"StructuredDocumentation","src":"32933: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":"33233:6:169","parameters":{"id":84021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84020,"mutability":"mutable","name":"settings","nameLocation":"33272:8:169","nodeType":"VariableDeclaration","scope":84057,"src":"33240:40:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":84019,"nodeType":"UserDefinedTypeName","pathNode":{"id":84018,"name":"Gear.ValidationSettings","nameLocations":["33240:4:169","33245:18:169"],"nodeType":"IdentifierPath","referencedDeclaration":83153,"src":"33240:23:169"},"referencedDeclaration":83153,"src":"33240:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"33239:42:169"},"returnParameters":{"id":84025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84024,"mutability":"mutable","name":"settingsView","nameLocation":"33364:12:169","nodeType":"VariableDeclaration","scope":84057,"src":"33329:47:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83165_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":84023,"nodeType":"UserDefinedTypeName","pathNode":{"id":84022,"name":"Gear.ValidationSettingsView","nameLocations":["33329:4:169","33334:22:169"],"nodeType":"IdentifierPath","referencedDeclaration":83165,"src":"33329:27:169"},"referencedDeclaration":83165,"src":"33329:27:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83165_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"33328:49:169"},"scope":84058,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":82825,"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":[84058],"name":"Gear","nameLocation":"1523:4:169","scope":84059,"usedErrors":[82854,82857,82860,82863,82866,82869,82872],"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:32303:170:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:32303:170:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1515:32303:170;;;;;;;2071:1;1515:32303;;;;;;;;;;-1:-1:-1;;1515:32303:170;;;;;;;1855:13;1515:32303;;;;;;-1:-1:-1;;1515:32303:170;;;;;;;2383:18;1515:32303;;;;;;-1:-1:-1;;1515:32303:170;;;;;2203:1;1515:32303;;;","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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e\",\"dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE\"]}},\"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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7","urls":["bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e","dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":84436,"exportedSymbols":{"ECDSA":[51038],"FROST":[40965],"Gear":[84435],"Hashes":[41483],"IRouter":[75030],"MessageHashUtils":[52237],"SafeCast":[55635],"SlotDerivation":[48965],"Time":[60343],"TransientSlot":[50690]},"nodeType":"SourceUnit","src":"74:33745:170","nodes":[{"id":83185,"nodeType":"PragmaDirective","src":"74:24:170","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":83187,"nodeType":"ImportDirective","src":"100:80:170","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":84436,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":83186,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"108:14:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83189,"nodeType":"ImportDirective","src":"181:78:170","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","file":"@openzeppelin/contracts/utils/TransientSlot.sol","nameLocation":"-1:-1:-1","scope":84436,"sourceUnit":50691,"symbolAliases":[{"foreign":{"id":83188,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50690,"src":"189:13:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83191,"nodeType":"ImportDirective","src":"260:75:170","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":84436,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":83190,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"268:5:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83193,"nodeType":"ImportDirective","src":"336:97:170","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":84436,"sourceUnit":52238,"symbolAliases":[{"foreign":{"id":83192,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52237,"src":"344:16:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83195,"nodeType":"ImportDirective","src":"434:73:170","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","nameLocation":"-1:-1:-1","scope":84436,"sourceUnit":55636,"symbolAliases":[{"foreign":{"id":83194,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"442:8:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83197,"nodeType":"ImportDirective","src":"508:66:170","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":84436,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":83196,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"516:4:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83199,"nodeType":"ImportDirective","src":"575:52:170","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":84436,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":83198,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"583:5:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83201,"nodeType":"ImportDirective","src":"628:73:170","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":84436,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":83200,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"636:6:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83203,"nodeType":"ImportDirective","src":"702:40:170","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":84436,"sourceUnit":75031,"symbolAliases":[{"foreign":{"id":83202,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75030,"src":"710:7:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84435,"nodeType":"ContractDefinition","src":"1515:32303:170","nodes":[{"id":83207,"nodeType":"UsingForDirective","src":"1534:24:170","nodes":[],"global":false,"libraryName":{"id":83205,"name":"ECDSA","nameLocations":["1540:5:170"],"nodeType":"IdentifierPath","referencedDeclaration":51038,"src":"1540:5:170"},"typeName":{"id":83206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1550:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":83210,"nodeType":"UsingForDirective","src":"1563:35:170","nodes":[],"global":false,"libraryName":{"id":83208,"name":"MessageHashUtils","nameLocations":["1569:16:170"],"nodeType":"IdentifierPath","referencedDeclaration":52237,"src":"1569:16:170"},"typeName":{"id":83209,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":83212,"nodeType":"UsingForDirective","src":"1604:26:170","nodes":[],"global":false,"libraryName":{"id":83211,"name":"TransientSlot","nameLocations":["1610:13:170"],"nodeType":"IdentifierPath","referencedDeclaration":50690,"src":"1610:13:170"}},{"id":83214,"nodeType":"UsingForDirective","src":"1635:27:170","nodes":[],"global":false,"libraryName":{"id":83213,"name":"SlotDerivation","nameLocations":["1641:14:170"],"nodeType":"IdentifierPath","referencedDeclaration":48965,"src":"1641:14:170"}},{"id":83218,"nodeType":"VariableDeclaration","src":"1808:60:170","nodes":[],"constant":true,"documentation":{"id":83215,"nodeType":"StructuredDocumentation","src":"1691:112:170","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:170","scope":84435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":83216,"name":"uint64","nodeType":"ElementaryTypeName","src":"1808:6:170","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":83217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1855:13:170","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"visibility":"public"},{"id":83222,"nodeType":"VariableDeclaration","src":"2014:58:170","nodes":[],"constant":true,"documentation":{"id":83219,"nodeType":"StructuredDocumentation","src":"1875:134:170","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:170","scope":84435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83220,"name":"uint128","nodeType":"ElementaryTypeName","src":"2014:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":83221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2071:1:170","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":83226,"nodeType":"VariableDeclaration","src":"2144:60:170","nodes":[],"constant":true,"documentation":{"id":83223,"nodeType":"StructuredDocumentation","src":"2078:61:170","text":" @dev The validators threshold denominator."},"functionSelector":"0279472c","mutability":"constant","name":"VALIDATORS_THRESHOLD_DENOMINATOR","nameLocation":"2168:32:170","scope":84435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83224,"name":"uint128","nodeType":"ElementaryTypeName","src":"2144:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":83225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2203:1:170","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"public"},{"id":83230,"nodeType":"VariableDeclaration","src":"2340:61:170","nodes":[],"constant":true,"documentation":{"id":83227,"nodeType":"StructuredDocumentation","src":"2211:124:170","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:170","scope":84435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83228,"name":"uint128","nodeType":"ElementaryTypeName","src":"2340:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":83229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:18:170","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000_by_1","typeString":"int_const 10000000000000"},"value":"10_000_000_000_000"},"visibility":"public"},{"id":83233,"nodeType":"ErrorDefinition","src":"2528:32:170","nodes":[],"documentation":{"id":83231,"nodeType":"StructuredDocumentation","src":"2428:95:170","text":" @dev Thrown when signature validation is attempted before the genesis block."},"errorSelector":"00f4462b","name":"ValidationBeforeGenesis","nameLocation":"2534:23:170","parameters":{"id":83232,"nodeType":"ParameterList","parameters":[],"src":"2557:2:170"}},{"id":83236,"nodeType":"ErrorDefinition","src":"2652:38:170","nodes":[],"documentation":{"id":83234,"nodeType":"StructuredDocumentation","src":"2566:81:170","text":" @dev Thrown when the timestamp is older than the previous era."},"errorSelector":"8d763ca0","name":"TimestampOlderThanPreviousEra","nameLocation":"2658:29:170","parameters":{"id":83235,"nodeType":"ParameterList","parameters":[],"src":"2687:2:170"}},{"id":83239,"nodeType":"ErrorDefinition","src":"2768:26:170","nodes":[],"documentation":{"id":83237,"nodeType":"StructuredDocumentation","src":"2696:67:170","text":" @dev Thrown when the timestamp is in the future."},"errorSelector":"47860b97","name":"TimestampInFuture","nameLocation":"2774:17:170","parameters":{"id":83238,"nodeType":"ParameterList","parameters":[],"src":"2791:2:170"}},{"id":83242,"nodeType":"ErrorDefinition","src":"2883:35:170","nodes":[],"documentation":{"id":83240,"nodeType":"StructuredDocumentation","src":"2800:78:170","text":" @dev Thrown when the number of FROST signatures is invalid."},"errorSelector":"60a1ea77","name":"InvalidFrostSignatureCount","nameLocation":"2889:26:170","parameters":{"id":83241,"nodeType":"ParameterList","parameters":[],"src":"2915:2:170"}},{"id":83245,"nodeType":"ErrorDefinition","src":"3037:36:170","nodes":[],"documentation":{"id":83243,"nodeType":"StructuredDocumentation","src":"2924:108:170","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:170","parameters":{"id":83244,"nodeType":"ParameterList","parameters":[],"src":"3070:2:170"}},{"id":83248,"nodeType":"ErrorDefinition","src":"3251:36:170","nodes":[],"documentation":{"id":83246,"nodeType":"StructuredDocumentation","src":"3079:167:170","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:170","parameters":{"id":83247,"nodeType":"ParameterList","parameters":[],"src":"3284:2:170"}},{"id":83251,"nodeType":"ErrorDefinition","src":"3441:39:170","nodes":[],"documentation":{"id":83249,"nodeType":"StructuredDocumentation","src":"3293:143:170","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:170","parameters":{"id":83250,"nodeType":"ParameterList","parameters":[],"src":"3477:2:170"}},{"id":83257,"nodeType":"StructDefinition","src":"3714:72:170","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":83252,"nodeType":"StructuredDocumentation","src":"3507:202:170","text":" @dev Represents an aggregated public key.\n It checked with `FROST.isValidPublicKey(x, y)` in `Router._resetValidators(...)`,\n so we can be sure that it is valid."},"members":[{"constant":false,"id":83254,"mutability":"mutable","name":"x","nameLocation":"3759:1:170","nodeType":"VariableDeclaration","scope":83257,"src":"3751:9:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83253,"name":"uint256","nodeType":"ElementaryTypeName","src":"3751:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83256,"mutability":"mutable","name":"y","nameLocation":"3778:1:170","nodeType":"VariableDeclaration","scope":83257,"src":"3770:9:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83255,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"3721:19:170","scope":84435,"visibility":"public"},{"id":83278,"nodeType":"StructDefinition","src":"3855:1200:170","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":83258,"nodeType":"StructuredDocumentation","src":"3792:58:170","text":" @dev Represents validators information."},"members":[{"constant":false,"id":83262,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4245:19:170","nodeType":"VariableDeclaration","scope":83278,"src":"4225:39:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":83261,"nodeType":"UserDefinedTypeName","pathNode":{"id":83260,"name":"AggregatedPublicKey","nameLocations":["4225:19:170"],"nodeType":"IdentifierPath","referencedDeclaration":83257,"src":"4225:19:170"},"referencedDeclaration":83257,"src":"4225:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":83265,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4572:40:170","nodeType":"VariableDeclaration","scope":83278,"src":"4564:48:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83264,"name":"address","nodeType":"ElementaryTypeName","src":"4564:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83270,"mutability":"mutable","name":"map","nameLocation":"4830:3:170","nodeType":"VariableDeclaration","scope":83278,"src":"4805:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":83269,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83267,"name":"address","nodeType":"ElementaryTypeName","src":"4813:7:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4805:24:170","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83268,"name":"bool","nodeType":"ElementaryTypeName","src":"4824:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":83274,"mutability":"mutable","name":"list","nameLocation":"4922:4:170","nodeType":"VariableDeclaration","scope":83278,"src":"4912:14:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83272,"name":"address","nodeType":"ElementaryTypeName","src":"4912:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83273,"nodeType":"ArrayTypeName","src":"4912:9:170","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":83277,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5032:16:170","nodeType":"VariableDeclaration","scope":83278,"src":"5024:24:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83276,"name":"uint256","nodeType":"ElementaryTypeName","src":"5024:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"3862:10:170","scope":84435,"visibility":"public"},{"id":83290,"nodeType":"StructDefinition","src":"5132:194:170","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":83279,"nodeType":"StructuredDocumentation","src":"5061:66:170","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":83282,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5184:19:170","nodeType":"VariableDeclaration","scope":83290,"src":"5164:39:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":83281,"nodeType":"UserDefinedTypeName","pathNode":{"id":83280,"name":"AggregatedPublicKey","nameLocations":["5164:19:170"],"nodeType":"IdentifierPath","referencedDeclaration":83257,"src":"5164:19:170"},"referencedDeclaration":83257,"src":"5164:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":83284,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5221:40:170","nodeType":"VariableDeclaration","scope":83290,"src":"5213:48:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83283,"name":"address","nodeType":"ElementaryTypeName","src":"5213:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83287,"mutability":"mutable","name":"list","nameLocation":"5281:4:170","nodeType":"VariableDeclaration","scope":83290,"src":"5271:14:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83285,"name":"address","nodeType":"ElementaryTypeName","src":"5271:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83286,"nodeType":"ArrayTypeName","src":"5271:9:170","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":83289,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5303:16:170","nodeType":"VariableDeclaration","scope":83290,"src":"5295:24:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83288,"name":"uint256","nodeType":"ElementaryTypeName","src":"5295:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5139:14:170","scope":84435,"visibility":"public"},{"id":83301,"nodeType":"StructDefinition","src":"5397:353:170","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":83291,"nodeType":"StructuredDocumentation","src":"5332:60:170","text":" @dev Represents address book information."},"members":[{"constant":false,"id":83294,"mutability":"mutable","name":"mirror","nameLocation":"5512:6:170","nodeType":"VariableDeclaration","scope":83301,"src":"5504:14:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83293,"name":"address","nodeType":"ElementaryTypeName","src":"5504:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83297,"mutability":"mutable","name":"wrappedVara","nameLocation":"5619:11:170","nodeType":"VariableDeclaration","scope":83301,"src":"5611:19:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83296,"name":"address","nodeType":"ElementaryTypeName","src":"5611:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83300,"mutability":"mutable","name":"middleware","nameLocation":"5733:10:170","nodeType":"VariableDeclaration","scope":83301,"src":"5725:18:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83299,"name":"address","nodeType":"ElementaryTypeName","src":"5725:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5404:11:170","scope":84435,"visibility":"public"},{"id":83309,"nodeType":"StructDefinition","src":"5812:248:170","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":83302,"nodeType":"StructuredDocumentation","src":"5756:51:170","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":83305,"mutability":"mutable","name":"id","nameLocation":"5956:2:170","nodeType":"VariableDeclaration","scope":83309,"src":"5948:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5948:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83308,"mutability":"mutable","name":"valid","nameLocation":"6048:5:170","nodeType":"VariableDeclaration","scope":83309,"src":"6043:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83307,"name":"bool","nodeType":"ElementaryTypeName","src":"6043:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"5819:14:170","scope":84435,"visibility":"public"},{"id":83319,"nodeType":"StructDefinition","src":"6123:270:170","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":83310,"nodeType":"StructuredDocumentation","src":"6066:52:170","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":83315,"mutability":"mutable","name":"transitions","nameLocation":"6265:11:170","nodeType":"VariableDeclaration","scope":83319,"src":"6247:29:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83510_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":83313,"nodeType":"UserDefinedTypeName","pathNode":{"id":83312,"name":"StateTransition","nameLocations":["6247:15:170"],"nodeType":"IdentifierPath","referencedDeclaration":83510,"src":"6247:15:170"},"referencedDeclaration":83510,"src":"6247:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":83314,"nodeType":"ArrayTypeName","src":"6247:17:170","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83510_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":83318,"mutability":"mutable","name":"head","nameLocation":"6382:4:170","nodeType":"VariableDeclaration","scope":83319,"src":"6374:12:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6374:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6130:15:170","scope":84435,"visibility":"public"},{"id":83331,"nodeType":"StructDefinition","src":"6461:189:170","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":83320,"nodeType":"StructuredDocumentation","src":"6399:57:170","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":83323,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"6519:19:170","nodeType":"VariableDeclaration","scope":83331,"src":"6499:39:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":83322,"nodeType":"UserDefinedTypeName","pathNode":{"id":83321,"name":"AggregatedPublicKey","nameLocations":["6499:19:170"],"nodeType":"IdentifierPath","referencedDeclaration":83257,"src":"6499:19:170"},"referencedDeclaration":83257,"src":"6499:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":83325,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"6554:33:170","nodeType":"VariableDeclaration","scope":83331,"src":"6548:39:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83324,"name":"bytes","nodeType":"ElementaryTypeName","src":"6548:5:170","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83328,"mutability":"mutable","name":"validators","nameLocation":"6607:10:170","nodeType":"VariableDeclaration","scope":83331,"src":"6597:20:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83326,"name":"address","nodeType":"ElementaryTypeName","src":"6597:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83327,"nodeType":"ArrayTypeName","src":"6597:9:170","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":83330,"mutability":"mutable","name":"eraIndex","nameLocation":"6635:8:170","nodeType":"VariableDeclaration","scope":83331,"src":"6627:16:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83329,"name":"uint256","nodeType":"ElementaryTypeName","src":"6627:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"6468:20:170","scope":84435,"visibility":"public"},{"id":83365,"nodeType":"StructDefinition","src":"6713:1206:170","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":83332,"nodeType":"StructuredDocumentation","src":"6656:52:170","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":83335,"mutability":"mutable","name":"blockHash","nameLocation":"6850:9:170","nodeType":"VariableDeclaration","scope":83365,"src":"6842:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6842:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83338,"mutability":"mutable","name":"blockTimestamp","nameLocation":"6978:14:170","nodeType":"VariableDeclaration","scope":83365,"src":"6971:21:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83337,"name":"uint48","nodeType":"ElementaryTypeName","src":"6971:6:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83341,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7091:26:170","nodeType":"VariableDeclaration","scope":83365,"src":"7083:34:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7083:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83344,"mutability":"mutable","name":"expiry","nameLocation":"7353:6:170","nodeType":"VariableDeclaration","scope":83365,"src":"7347:12:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83343,"name":"uint8","nodeType":"ElementaryTypeName","src":"7347:5:170","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83349,"mutability":"mutable","name":"chainCommitment","nameLocation":"7479:15:170","nodeType":"VariableDeclaration","scope":83365,"src":"7461:33:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83319_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":83347,"nodeType":"UserDefinedTypeName","pathNode":{"id":83346,"name":"ChainCommitment","nameLocations":["7461:15:170"],"nodeType":"IdentifierPath","referencedDeclaration":83319,"src":"7461:15:170"},"referencedDeclaration":83319,"src":"7461:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83319_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":83348,"nodeType":"ArrayTypeName","src":"7461:17:170","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83319_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83354,"mutability":"mutable","name":"codeCommitments","nameLocation":"7606:15:170","nodeType":"VariableDeclaration","scope":83365,"src":"7589:32:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83309_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":83352,"nodeType":"UserDefinedTypeName","pathNode":{"id":83351,"name":"CodeCommitment","nameLocations":["7589:14:170"],"nodeType":"IdentifierPath","referencedDeclaration":83309,"src":"7589:14:170"},"referencedDeclaration":83309,"src":"7589:14:170","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":83353,"nodeType":"ArrayTypeName","src":"7589:16:170","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83309_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83359,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"7745:17:170","nodeType":"VariableDeclaration","scope":83365,"src":"7725:37:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83375_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":83357,"nodeType":"UserDefinedTypeName","pathNode":{"id":83356,"name":"RewardsCommitment","nameLocations":["7725:17:170"],"nodeType":"IdentifierPath","referencedDeclaration":83375,"src":"7725:17:170"},"referencedDeclaration":83375,"src":"7725:17:170","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":83358,"nodeType":"ArrayTypeName","src":"7725:19:170","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83375_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83364,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"7892:20:170","nodeType":"VariableDeclaration","scope":83365,"src":"7869:43:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83331_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":83362,"nodeType":"UserDefinedTypeName","pathNode":{"id":83361,"name":"ValidatorsCommitment","nameLocations":["7869:20:170"],"nodeType":"IdentifierPath","referencedDeclaration":83331,"src":"7869:20:170"},"referencedDeclaration":83331,"src":"7869:20:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":83363,"nodeType":"ArrayTypeName","src":"7869:22:170","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83331_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"6720:15:170","scope":84435,"visibility":"public"},{"id":83375,"nodeType":"StructDefinition","src":"7984:144:170","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":83366,"nodeType":"StructuredDocumentation","src":"7925:54:170","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":83369,"mutability":"mutable","name":"operators","nameLocation":"8045:9:170","nodeType":"VariableDeclaration","scope":83375,"src":"8019:35:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83381_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":83368,"nodeType":"UserDefinedTypeName","pathNode":{"id":83367,"name":"OperatorRewardsCommitment","nameLocations":["8019:25:170"],"nodeType":"IdentifierPath","referencedDeclaration":83381,"src":"8019:25:170"},"referencedDeclaration":83381,"src":"8019:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83381_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83372,"mutability":"mutable","name":"stakers","nameLocation":"8088:7:170","nodeType":"VariableDeclaration","scope":83375,"src":"8064:31:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":83371,"nodeType":"UserDefinedTypeName","pathNode":{"id":83370,"name":"StakerRewardsCommitment","nameLocations":["8064:23:170"],"nodeType":"IdentifierPath","referencedDeclaration":83391,"src":"8064:23:170"},"referencedDeclaration":83391,"src":"8064:23:170","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83374,"mutability":"mutable","name":"timestamp","nameLocation":"8112:9:170","nodeType":"VariableDeclaration","scope":83375,"src":"8105:16:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83373,"name":"uint48","nodeType":"ElementaryTypeName","src":"8105:6:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"7991:17:170","scope":84435,"visibility":"public"},{"id":83381,"nodeType":"StructDefinition","src":"8202:86:170","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":83376,"nodeType":"StructuredDocumentation","src":"8134:63:170","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":83378,"mutability":"mutable","name":"amount","nameLocation":"8253:6:170","nodeType":"VariableDeclaration","scope":83381,"src":"8245:14:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83377,"name":"uint256","nodeType":"ElementaryTypeName","src":"8245:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83380,"mutability":"mutable","name":"root","nameLocation":"8277:4:170","nodeType":"VariableDeclaration","scope":83381,"src":"8269:12:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8269:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8209:25:170","scope":84435,"visibility":"public"},{"id":83391,"nodeType":"StructDefinition","src":"8360:128:170","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":83382,"nodeType":"StructuredDocumentation","src":"8294:61:170","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":83386,"mutability":"mutable","name":"distribution","nameLocation":"8417:12:170","nodeType":"VariableDeclaration","scope":83391,"src":"8401:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83397_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":83384,"nodeType":"UserDefinedTypeName","pathNode":{"id":83383,"name":"StakerRewards","nameLocations":["8401:13:170"],"nodeType":"IdentifierPath","referencedDeclaration":83397,"src":"8401:13:170"},"referencedDeclaration":83397,"src":"8401:13:170","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83397_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":83385,"nodeType":"ArrayTypeName","src":"8401:15:170","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83397_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":83388,"mutability":"mutable","name":"totalAmount","nameLocation":"8447:11:170","nodeType":"VariableDeclaration","scope":83391,"src":"8439:19:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83387,"name":"uint256","nodeType":"ElementaryTypeName","src":"8439:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83390,"mutability":"mutable","name":"token","nameLocation":"8476:5:170","nodeType":"VariableDeclaration","scope":83391,"src":"8468:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83389,"name":"address","nodeType":"ElementaryTypeName","src":"8468:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"8367:23:170","scope":84435,"visibility":"public"},{"id":83397,"nodeType":"StructDefinition","src":"8549:75:170","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":83392,"nodeType":"StructuredDocumentation","src":"8494:50:170","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":83394,"mutability":"mutable","name":"vault","nameLocation":"8588:5:170","nodeType":"VariableDeclaration","scope":83397,"src":"8580:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83393,"name":"address","nodeType":"ElementaryTypeName","src":"8580:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83396,"mutability":"mutable","name":"amount","nameLocation":"8611:6:170","nodeType":"VariableDeclaration","scope":83397,"src":"8603:14:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83395,"name":"uint256","nodeType":"ElementaryTypeName","src":"8603:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"8556:13:170","scope":84435,"visibility":"public"},{"id":83405,"nodeType":"EnumDefinition","src":"8699:960:170","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":83398,"nodeType":"StructuredDocumentation","src":"8630:64:170","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":83399,"nodeType":"StructuredDocumentation","src":"8724:260:170","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":83400,"name":"Unknown","nameLocation":"8993:7:170","nodeType":"EnumValue","src":"8993:7:170"},{"documentation":{"id":83401,"nodeType":"StructuredDocumentation","src":"9010:465:170","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":83402,"name":"ValidationRequested","nameLocation":"9484:19:170","nodeType":"EnumValue","src":"9484:19:170"},{"documentation":{"id":83403,"nodeType":"StructuredDocumentation","src":"9513:122:170","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":83404,"name":"Validated","nameLocation":"9644:9:170","nodeType":"EnumValue","src":"9644:9:170"}],"name":"CodeState","nameLocation":"8704:9:170"},{"id":83411,"nodeType":"StructDefinition","src":"9739:81:170","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":83406,"nodeType":"StructuredDocumentation","src":"9665:69:170","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":83408,"mutability":"mutable","name":"hash","nameLocation":"9783:4:170","nodeType":"VariableDeclaration","scope":83411,"src":"9775:12:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83407,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9775:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83410,"mutability":"mutable","name":"timestamp","nameLocation":"9804:9:170","nodeType":"VariableDeclaration","scope":83411,"src":"9797:16:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83409,"name":"uint48","nodeType":"ElementaryTypeName","src":"9797:6:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"9746:18:170","scope":84435,"visibility":"public"},{"id":83417,"nodeType":"StructDefinition","src":"9887:92:170","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":83412,"nodeType":"StructuredDocumentation","src":"9826:56:170","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":83414,"mutability":"mutable","name":"threshold","nameLocation":"9931:9:170","nodeType":"VariableDeclaration","scope":83417,"src":"9924:16:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":83413,"name":"uint64","nodeType":"ElementaryTypeName","src":"9924:6:170","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":83416,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"9958:14:170","nodeType":"VariableDeclaration","scope":83417,"src":"9950:22:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83415,"name":"uint128","nodeType":"ElementaryTypeName","src":"9950:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"9894:19:170","scope":84435,"visibility":"public"},{"id":83425,"nodeType":"StructDefinition","src":"10057:102:170","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":83418,"nodeType":"StructuredDocumentation","src":"9985:67:170","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":83420,"mutability":"mutable","name":"hash","nameLocation":"10099:4:170","nodeType":"VariableDeclaration","scope":83425,"src":"10091:12:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10091:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83422,"mutability":"mutable","name":"number","nameLocation":"10120:6:170","nodeType":"VariableDeclaration","scope":83425,"src":"10113:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":83421,"name":"uint32","nodeType":"ElementaryTypeName","src":"10113:6:170","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":83424,"mutability":"mutable","name":"timestamp","nameLocation":"10143:9:170","nodeType":"VariableDeclaration","scope":83425,"src":"10136:16:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83423,"name":"uint48","nodeType":"ElementaryTypeName","src":"10136:6:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10064:16:170","scope":84435,"visibility":"public"},{"id":83446,"nodeType":"StructDefinition","src":"10213:1092:170","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":83426,"nodeType":"StructuredDocumentation","src":"10165:43:170","text":" @dev Represents message."},"members":[{"constant":false,"id":83429,"mutability":"mutable","name":"id","nameLocation":"10338:2:170","nodeType":"VariableDeclaration","scope":83446,"src":"10330:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83428,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10330:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83432,"mutability":"mutable","name":"destination","nameLocation":"10534:11:170","nodeType":"VariableDeclaration","scope":83446,"src":"10526:19:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83431,"name":"address","nodeType":"ElementaryTypeName","src":"10526:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83435,"mutability":"mutable","name":"payload","nameLocation":"10629:7:170","nodeType":"VariableDeclaration","scope":83446,"src":"10623:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83434,"name":"bytes","nodeType":"ElementaryTypeName","src":"10623:5:170","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83438,"mutability":"mutable","name":"value","nameLocation":"10733:5:170","nodeType":"VariableDeclaration","scope":83446,"src":"10725:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83437,"name":"uint128","nodeType":"ElementaryTypeName","src":"10725:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83442,"mutability":"mutable","name":"replyDetails","nameLocation":"10981:12:170","nodeType":"VariableDeclaration","scope":83446,"src":"10968:25:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":83441,"nodeType":"UserDefinedTypeName","pathNode":{"id":83440,"name":"ReplyDetails","nameLocations":["10968:12:170"],"nodeType":"IdentifierPath","referencedDeclaration":83482,"src":"10968:12:170"},"referencedDeclaration":83482,"src":"10968:12:170","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":83445,"mutability":"mutable","name":"call","nameLocation":"11294:4:170","nodeType":"VariableDeclaration","scope":83446,"src":"11289:9:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83444,"name":"bool","nodeType":"ElementaryTypeName","src":"11289:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10220:7:170","scope":84435,"visibility":"public"},{"id":83474,"nodeType":"StructDefinition","src":"11369:1298:170","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":83447,"nodeType":"StructuredDocumentation","src":"11311:53:170","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":83453,"mutability":"mutable","name":"codes","nameLocation":"11643:5:170","nodeType":"VariableDeclaration","scope":83474,"src":"11613:35:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":83452,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11621:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"11613:29:170","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83451,"nodeType":"UserDefinedTypeName","pathNode":{"id":83450,"name":"CodeState","nameLocations":["11632:9:170"],"nodeType":"IdentifierPath","referencedDeclaration":83405,"src":"11632:9:170"},"referencedDeclaration":83405,"src":"11632:9:170","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":83458,"mutability":"mutable","name":"programs","nameLocation":"11861:8:170","nodeType":"VariableDeclaration","scope":83474,"src":"11833:36:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":83457,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83455,"name":"address","nodeType":"ElementaryTypeName","src":"11841:7:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"11833:27:170","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11852:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":83461,"mutability":"mutable","name":"programsCount","nameLocation":"11978:13:170","nodeType":"VariableDeclaration","scope":83474,"src":"11970:21:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83460,"name":"uint256","nodeType":"ElementaryTypeName","src":"11970:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83464,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12106:19:170","nodeType":"VariableDeclaration","scope":83474,"src":"12098:27:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83463,"name":"uint256","nodeType":"ElementaryTypeName","src":"12098:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83467,"mutability":"mutable","name":"maxValidators","nameLocation":"12224:13:170","nodeType":"VariableDeclaration","scope":83474,"src":"12217:20:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":83466,"name":"uint16","nodeType":"ElementaryTypeName","src":"12217:6:170","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":83470,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"12415:28:170","nodeType":"VariableDeclaration","scope":83474,"src":"12407:36:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83469,"name":"uint256","nodeType":"ElementaryTypeName","src":"12407:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83473,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"12631:29:170","nodeType":"VariableDeclaration","scope":83474,"src":"12623:37:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83472,"name":"uint256","nodeType":"ElementaryTypeName","src":"12623:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"11376:12:170","scope":84435,"visibility":"public"},{"id":83482,"nodeType":"StructDefinition","src":"12733:564:170","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":83475,"nodeType":"StructuredDocumentation","src":"12673:55:170","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":83478,"mutability":"mutable","name":"to","nameLocation":"12942:2:170","nodeType":"VariableDeclaration","scope":83482,"src":"12934:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12934:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83481,"mutability":"mutable","name":"code","nameLocation":"13286:4:170","nodeType":"VariableDeclaration","scope":83482,"src":"13279:11:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":83480,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13279:6:170","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"12740:12:170","scope":84435,"visibility":"public"},{"id":83510,"nodeType":"StructDefinition","src":"13574:1619:170","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":83483,"nodeType":"StructuredDocumentation","src":"13303:266:170","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":83486,"mutability":"mutable","name":"actorId","nameLocation":"13801:7:170","nodeType":"VariableDeclaration","scope":83510,"src":"13793:15:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83485,"name":"address","nodeType":"ElementaryTypeName","src":"13793:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83489,"mutability":"mutable","name":"newStateHash","nameLocation":"13982:12:170","nodeType":"VariableDeclaration","scope":83510,"src":"13974:20:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13974:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83492,"mutability":"mutable","name":"exited","nameLocation":"14089:6:170","nodeType":"VariableDeclaration","scope":83510,"src":"14084:11:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83491,"name":"bool","nodeType":"ElementaryTypeName","src":"14084:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83495,"mutability":"mutable","name":"inheritor","nameLocation":"14291:9:170","nodeType":"VariableDeclaration","scope":83510,"src":"14283:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83494,"name":"address","nodeType":"ElementaryTypeName","src":"14283:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83498,"mutability":"mutable","name":"valueToReceive","nameLocation":"14669:14:170","nodeType":"VariableDeclaration","scope":83510,"src":"14661:22:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83497,"name":"uint128","nodeType":"ElementaryTypeName","src":"14661:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83501,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"14965:26:170","nodeType":"VariableDeclaration","scope":83510,"src":"14960:31:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83500,"name":"bool","nodeType":"ElementaryTypeName","src":"14960:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83504,"mutability":"mutable","name":"valueClaimsMerkleRoot","nameLocation":"15078:21:170","nodeType":"VariableDeclaration","scope":83510,"src":"15070:29:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15070:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83509,"mutability":"mutable","name":"messages","nameLocation":"15178:8:170","nodeType":"VariableDeclaration","scope":83510,"src":"15168:18:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83446_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":83507,"nodeType":"UserDefinedTypeName","pathNode":{"id":83506,"name":"Message","nameLocations":["15168:7:170"],"nodeType":"IdentifierPath","referencedDeclaration":83446,"src":"15168:7:170"},"referencedDeclaration":83446,"src":"15168:7:170","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_storage_ptr","typeString":"struct Gear.Message"}},"id":83508,"nodeType":"ArrayTypeName","src":"15168:9:170","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83446_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"13581:15:170","scope":84435,"visibility":"public"},{"id":83518,"nodeType":"StructDefinition","src":"15253:104:170","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":83511,"nodeType":"StructuredDocumentation","src":"15199:49:170","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":83513,"mutability":"mutable","name":"era","nameLocation":"15288:3:170","nodeType":"VariableDeclaration","scope":83518,"src":"15280:11:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83512,"name":"uint256","nodeType":"ElementaryTypeName","src":"15280:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83515,"mutability":"mutable","name":"election","nameLocation":"15309:8:170","nodeType":"VariableDeclaration","scope":83518,"src":"15301:16:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83514,"name":"uint256","nodeType":"ElementaryTypeName","src":"15301:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83517,"mutability":"mutable","name":"validationDelay","nameLocation":"15335:15:170","nodeType":"VariableDeclaration","scope":83518,"src":"15327:23:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83516,"name":"uint256","nodeType":"ElementaryTypeName","src":"15327:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"15260:9:170","scope":84435,"visibility":"public"},{"id":83530,"nodeType":"StructDefinition","src":"15427:171:170","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":83519,"nodeType":"StructuredDocumentation","src":"15363:59:170","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":83521,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15471:18:170","nodeType":"VariableDeclaration","scope":83530,"src":"15463:26:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83520,"name":"uint128","nodeType":"ElementaryTypeName","src":"15463:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83523,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15507:20:170","nodeType":"VariableDeclaration","scope":83530,"src":"15499:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83522,"name":"uint128","nodeType":"ElementaryTypeName","src":"15499:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83526,"mutability":"mutable","name":"validators0","nameLocation":"15548:11:170","nodeType":"VariableDeclaration","scope":83530,"src":"15537:22:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83525,"nodeType":"UserDefinedTypeName","pathNode":{"id":83524,"name":"Validators","nameLocations":["15537:10:170"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"15537:10:170"},"referencedDeclaration":83278,"src":"15537:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":83529,"mutability":"mutable","name":"validators1","nameLocation":"15580:11:170","nodeType":"VariableDeclaration","scope":83530,"src":"15569:22:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83528,"nodeType":"UserDefinedTypeName","pathNode":{"id":83527,"name":"Validators","nameLocations":["15569:10:170"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"15569:10:170"},"referencedDeclaration":83278,"src":"15569:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"15434:18:170","scope":84435,"visibility":"public"},{"id":83542,"nodeType":"StructDefinition","src":"15676:183:170","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":83531,"nodeType":"StructuredDocumentation","src":"15604:67:170","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":83533,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15724:18:170","nodeType":"VariableDeclaration","scope":83542,"src":"15716:26:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83532,"name":"uint128","nodeType":"ElementaryTypeName","src":"15716:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83535,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15760:20:170","nodeType":"VariableDeclaration","scope":83542,"src":"15752:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83534,"name":"uint128","nodeType":"ElementaryTypeName","src":"15752:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83538,"mutability":"mutable","name":"validators0","nameLocation":"15805:11:170","nodeType":"VariableDeclaration","scope":83542,"src":"15790:26:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83537,"nodeType":"UserDefinedTypeName","pathNode":{"id":83536,"name":"ValidatorsView","nameLocations":["15790:14:170"],"nodeType":"IdentifierPath","referencedDeclaration":83290,"src":"15790:14:170"},"referencedDeclaration":83290,"src":"15790:14:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":83541,"mutability":"mutable","name":"validators1","nameLocation":"15841:11:170","nodeType":"VariableDeclaration","scope":83542,"src":"15826:26:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83540,"nodeType":"UserDefinedTypeName","pathNode":{"id":83539,"name":"ValidatorsView","nameLocations":["15826:14:170"],"nodeType":"IdentifierPath","referencedDeclaration":83290,"src":"15826:14:170"},"referencedDeclaration":83290,"src":"15826:14:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"15683:22:170","scope":84435,"visibility":"public"},{"id":83550,"nodeType":"StructDefinition","src":"15921:104:170","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":83543,"nodeType":"StructuredDocumentation","src":"15865:51:170","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":83545,"mutability":"mutable","name":"messageId","nameLocation":"15957:9:170","nodeType":"VariableDeclaration","scope":83550,"src":"15949:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15949:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83547,"mutability":"mutable","name":"destination","nameLocation":"15984:11:170","nodeType":"VariableDeclaration","scope":83550,"src":"15976:19:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83546,"name":"address","nodeType":"ElementaryTypeName","src":"15976:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83549,"mutability":"mutable","name":"value","nameLocation":"16013:5:170","nodeType":"VariableDeclaration","scope":83550,"src":"16005:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83548,"name":"uint128","nodeType":"ElementaryTypeName","src":"16005:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"15928:10:170","scope":84435,"visibility":"public"},{"id":83572,"nodeType":"StructDefinition","src":"16105:436:170","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":83551,"nodeType":"StructuredDocumentation","src":"16031:69:170","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":83553,"mutability":"mutable","name":"vaultRegistry","nameLocation":"16181:13:170","nodeType":"VariableDeclaration","scope":83572,"src":"16173:21:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83552,"name":"address","nodeType":"ElementaryTypeName","src":"16173:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83555,"mutability":"mutable","name":"operatorRegistry","nameLocation":"16212:16:170","nodeType":"VariableDeclaration","scope":83572,"src":"16204:24:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83554,"name":"address","nodeType":"ElementaryTypeName","src":"16204:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83557,"mutability":"mutable","name":"networkRegistry","nameLocation":"16246:15:170","nodeType":"VariableDeclaration","scope":83572,"src":"16238:23:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83556,"name":"address","nodeType":"ElementaryTypeName","src":"16238:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83559,"mutability":"mutable","name":"middlewareService","nameLocation":"16279:17:170","nodeType":"VariableDeclaration","scope":83572,"src":"16271:25:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83558,"name":"address","nodeType":"ElementaryTypeName","src":"16271:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83561,"mutability":"mutable","name":"networkOptIn","nameLocation":"16314:12:170","nodeType":"VariableDeclaration","scope":83572,"src":"16306:20:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83560,"name":"address","nodeType":"ElementaryTypeName","src":"16306:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83563,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"16344:20:170","nodeType":"VariableDeclaration","scope":83572,"src":"16336:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83562,"name":"address","nodeType":"ElementaryTypeName","src":"16336:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83565,"mutability":"mutable","name":"operatorRewards","nameLocation":"16418:15:170","nodeType":"VariableDeclaration","scope":83572,"src":"16410:23:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83564,"name":"address","nodeType":"ElementaryTypeName","src":"16410:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83567,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"16451:18:170","nodeType":"VariableDeclaration","scope":83572,"src":"16443:26:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83566,"name":"address","nodeType":"ElementaryTypeName","src":"16443:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83569,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"16487:17:170","nodeType":"VariableDeclaration","scope":83572,"src":"16479:25:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83568,"name":"address","nodeType":"ElementaryTypeName","src":"16479:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83571,"mutability":"mutable","name":"vetoResolver","nameLocation":"16522:12:170","nodeType":"VariableDeclaration","scope":83572,"src":"16514:20:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83570,"name":"address","nodeType":"ElementaryTypeName","src":"16514:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16112:18:170","scope":84435,"visibility":"public"},{"id":83576,"nodeType":"EnumDefinition","src":"16614:55:170","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":83573,"nodeType":"StructuredDocumentation","src":"16547:62:170","text":" @dev Represents the type of signature used."},"members":[{"id":83574,"name":"FROST","nameLocation":"16643:5:170","nodeType":"EnumValue","src":"16643:5:170"},{"id":83575,"name":"ECDSA","nameLocation":"16658:5:170","nodeType":"EnumValue","src":"16658:5:170"}],"name":"SignatureType","nameLocation":"16619:13:170"},{"id":83593,"nodeType":"FunctionDefinition","src":"16881:185:170","nodes":[],"body":{"id":83592,"nodeType":"Block","src":"16983:83:170","nodes":[],"statements":[{"expression":{"arguments":[{"id":83588,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83579,"src":"17035:16:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83589,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83581,"src":"17053:5:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83586,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"17000:6:170","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":83587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17007:27:170","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41482,"src":"17000:34:170","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":83590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17000:59:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83585,"id":83591,"nodeType":"Return","src":"16993:66:170"}]},"documentation":{"id":83577,"nodeType":"StructuredDocumentation","src":"16675:201:170","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."},"implemented":true,"kind":"function","modifiers":[],"name":"chainCommitmentHash","nameLocation":"16890:19:170","parameters":{"id":83582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83579,"mutability":"mutable","name":"_transitionsHash","nameLocation":"16918:16:170","nodeType":"VariableDeclaration","scope":83593,"src":"16910:24:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16910:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83581,"mutability":"mutable","name":"_head","nameLocation":"16944:5:170","nodeType":"VariableDeclaration","scope":83593,"src":"16936:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16936:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16909:41:170"},"returnParameters":{"id":83585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83593,"src":"16974:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16974:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16973:9:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83610,"nodeType":"FunctionDefinition","src":"17235:336:170","nodes":[],"body":{"id":83609,"nodeType":"Block","src":"17323:248:170","nodes":[],"statements":[{"assignments":[83604],"declarations":[{"constant":false,"id":83604,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"17341:19:170","nodeType":"VariableDeclaration","scope":83609,"src":"17333:27:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17333:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83605,"nodeType":"VariableDeclarationStatement","src":"17333:27:170"},{"AST":{"nativeSrc":"17395:134:170","nodeType":"YulBlock","src":"17395:134:170","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17416:4:170","nodeType":"YulLiteral","src":"17416:4:170","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"17422:6:170","nodeType":"YulIdentifier","src":"17422:6:170"}],"functionName":{"name":"mstore","nativeSrc":"17409:6:170","nodeType":"YulIdentifier","src":"17409:6:170"},"nativeSrc":"17409:20:170","nodeType":"YulFunctionCall","src":"17409:20:170"},"nativeSrc":"17409:20:170","nodeType":"YulExpressionStatement","src":"17409:20:170"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17450:4:170","nodeType":"YulLiteral","src":"17450:4:170","type":"","value":"0x20"},{"name":"valid","nativeSrc":"17456:5:170","nodeType":"YulIdentifier","src":"17456:5:170"}],"functionName":{"name":"mstore8","nativeSrc":"17442:7:170","nodeType":"YulIdentifier","src":"17442:7:170"},"nativeSrc":"17442:20:170","nodeType":"YulFunctionCall","src":"17442:20:170"},"nativeSrc":"17442:20:170","nodeType":"YulExpressionStatement","src":"17442:20:170"},{"nativeSrc":"17475:44:170","nodeType":"YulAssignment","src":"17475:44:170","value":{"arguments":[{"kind":"number","nativeSrc":"17508:4:170","nodeType":"YulLiteral","src":"17508:4:170","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17514:4:170","nodeType":"YulLiteral","src":"17514:4:170","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"17498:9:170","nodeType":"YulIdentifier","src":"17498:9:170"},"nativeSrc":"17498:21:170","nodeType":"YulFunctionCall","src":"17498:21:170"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"17475:19:170","nodeType":"YulIdentifier","src":"17475:19:170"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83604,"isOffset":false,"isSlot":false,"src":"17475:19:170","valueSize":1},{"declaration":83596,"isOffset":false,"isSlot":false,"src":"17422:6:170","valueSize":1},{"declaration":83598,"isOffset":false,"isSlot":false,"src":"17456:5:170","valueSize":1}],"flags":["memory-safe"],"id":83606,"nodeType":"InlineAssembly","src":"17370:159:170"},{"expression":{"id":83607,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83604,"src":"17545:19:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83602,"id":83608,"nodeType":"Return","src":"17538:26:170"}]},"documentation":{"id":83594,"nodeType":"StructuredDocumentation","src":"17072:158:170","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":"17244:18:170","parameters":{"id":83599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83596,"mutability":"mutable","name":"codeId","nameLocation":"17271:6:170","nodeType":"VariableDeclaration","scope":83610,"src":"17263:14:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17263:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83598,"mutability":"mutable","name":"valid","nameLocation":"17284:5:170","nodeType":"VariableDeclaration","scope":83610,"src":"17279:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83597,"name":"bool","nodeType":"ElementaryTypeName","src":"17279:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17262:28:170"},"returnParameters":{"id":83602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83601,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83610,"src":"17314:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17314:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17313:9:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83632,"nodeType":"FunctionDefinition","src":"17848:273:170","nodes":[],"body":{"id":83631,"nodeType":"Block","src":"18016:105:170","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83625,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83613,"src":"18060:20:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83626,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83615,"src":"18082:18:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83627,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83617,"src":"18102:10:170","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":83623,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18043:3:170","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18047:12:170","memberName":"encodePacked","nodeType":"MemberAccess","src":"18043:16:170","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18043:70:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83622,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18033:9:170","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18033:81:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83621,"id":83630,"nodeType":"Return","src":"18026:88:170"}]},"documentation":{"id":83611,"nodeType":"StructuredDocumentation","src":"17577:266:170","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":"17857:21:170","parameters":{"id":83618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83613,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"17887:20:170","nodeType":"VariableDeclaration","scope":83632,"src":"17879:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17879:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83615,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"17917:18:170","nodeType":"VariableDeclaration","scope":83632,"src":"17909:26:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17909:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83617,"mutability":"mutable","name":"_timestamp","nameLocation":"17944:10:170","nodeType":"VariableDeclaration","scope":83632,"src":"17937:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83616,"name":"uint48","nodeType":"ElementaryTypeName","src":"17937:6:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17878:77:170"},"returnParameters":{"id":83621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83632,"src":"18003:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18003:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18002:9:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83658,"nodeType":"FunctionDefinition","src":"18252:374:170","nodes":[],"body":{"id":83657,"nodeType":"Block","src":"18363:263:170","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":83644,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83636,"src":"18437:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18448:19:170","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83323,"src":"18437:30:170","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18468:1:170","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":83254,"src":"18437:32:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83647,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83636,"src":"18487:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18498:19:170","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83323,"src":"18487:30:170","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18518:1:170","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":83256,"src":"18487:32:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":83650,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83636,"src":"18537:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18548:10:170","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":83328,"src":"18537:21:170","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":83652,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83636,"src":"18576:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18587:8:170","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83330,"src":"18576:19:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"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":83642,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18403:3:170","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18407:12:170","memberName":"encodePacked","nodeType":"MemberAccess","src":"18403:16:170","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18403:206:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83641,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18380:9:170","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18380:239:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83640,"id":83656,"nodeType":"Return","src":"18373:246:170"}]},"documentation":{"id":83633,"nodeType":"StructuredDocumentation","src":"18127:120:170","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"18261:24:170","parameters":{"id":83637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83636,"mutability":"mutable","name":"commitment","nameLocation":"18319:10:170","nodeType":"VariableDeclaration","scope":83658,"src":"18286:43:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":83635,"nodeType":"UserDefinedTypeName","pathNode":{"id":83634,"name":"Gear.ValidatorsCommitment","nameLocations":["18286:4:170","18291:20:170"],"nodeType":"IdentifierPath","referencedDeclaration":83331,"src":"18286:25:170"},"referencedDeclaration":83331,"src":"18286:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"18285:45:170"},"returnParameters":{"id":83640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83658,"src":"18354:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18354:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18353:9:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83695,"nodeType":"FunctionDefinition","src":"19239:697:170","nodes":[],"body":{"id":83694,"nodeType":"Block","src":"19576:360:170","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83683,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83661,"src":"19650:6:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83684,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83663,"src":"19674:10:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":83685,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83665,"src":"19702:19:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83686,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"19739:7:170","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83687,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83669,"src":"19764:20:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83688,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83671,"src":"19802:20:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83689,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83673,"src":"19840:22:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83690,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83675,"src":"19880:25:170","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":83681,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19616:3:170","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19620:12:170","memberName":"encodePacked","nodeType":"MemberAccess","src":"19616:16:170","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19616:303:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83680,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19593:9:170","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19593:336:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83679,"id":83693,"nodeType":"Return","src":"19586:343:170"}]},"documentation":{"id":83659,"nodeType":"StructuredDocumentation","src":"18632:602:170","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":"19248:19:170","parameters":{"id":83676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83661,"mutability":"mutable","name":"_block","nameLocation":"19285:6:170","nodeType":"VariableDeclaration","scope":83695,"src":"19277:14:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19277:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83663,"mutability":"mutable","name":"_timestamp","nameLocation":"19308:10:170","nodeType":"VariableDeclaration","scope":83695,"src":"19301:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83662,"name":"uint48","nodeType":"ElementaryTypeName","src":"19301:6:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83665,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"19336:19:170","nodeType":"VariableDeclaration","scope":83695,"src":"19328:27:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83664,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19328:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83667,"mutability":"mutable","name":"_expiry","nameLocation":"19371:7:170","nodeType":"VariableDeclaration","scope":83695,"src":"19365:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83666,"name":"uint8","nodeType":"ElementaryTypeName","src":"19365:5:170","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83669,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"19396:20:170","nodeType":"VariableDeclaration","scope":83695,"src":"19388:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83668,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19388:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83671,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"19434:20:170","nodeType":"VariableDeclaration","scope":83695,"src":"19426:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83670,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19426:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83673,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"19472:22:170","nodeType":"VariableDeclaration","scope":83695,"src":"19464:30:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19464:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83675,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"19512:25:170","nodeType":"VariableDeclaration","scope":83695,"src":"19504:33:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19504:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19267:276:170"},"returnParameters":{"id":83679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83678,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83695,"src":"19567:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19567:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19566:9:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83727,"nodeType":"FunctionDefinition","src":"20067:407:170","nodes":[],"body":{"id":83726,"nodeType":"Block","src":"20144:330:170","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83707,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83699,"src":"20218:7:170","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20226:2:170","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83429,"src":"20218:10:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83709,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83699,"src":"20246:7:170","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20254:11:170","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"20246:19:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":83711,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83699,"src":"20283:7:170","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20291:7:170","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83435,"src":"20283:15:170","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":83713,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83699,"src":"20316:7:170","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20324:5:170","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"20316:13:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83715,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83699,"src":"20347:7:170","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20355:12:170","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83442,"src":"20347:20:170","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20368:2:170","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83478,"src":"20347:23:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":83718,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83699,"src":"20388:7:170","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20396:12:170","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83442,"src":"20388:20:170","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20409:4:170","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83481,"src":"20388:25:170","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":83721,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83699,"src":"20431:7:170","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20439:4:170","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83445,"src":"20431:12:170","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":83705,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20184:3:170","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20188:12:170","memberName":"encodePacked","nodeType":"MemberAccess","src":"20184:16:170","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20184:273:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83704,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20161:9:170","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20161:306:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83703,"id":83725,"nodeType":"Return","src":"20154:313:170"}]},"documentation":{"id":83696,"nodeType":"StructuredDocumentation","src":"19942:120:170","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":"20076:11:170","parameters":{"id":83700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83699,"mutability":"mutable","name":"message","nameLocation":"20103:7:170","nodeType":"VariableDeclaration","scope":83727,"src":"20088:22:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":83698,"nodeType":"UserDefinedTypeName","pathNode":{"id":83697,"name":"Message","nameLocations":["20088:7:170"],"nodeType":"IdentifierPath","referencedDeclaration":83446,"src":"20088:7:170"},"referencedDeclaration":83446,"src":"20088:7:170","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"20087:24:170"},"returnParameters":{"id":83703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83727,"src":"20135:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20135:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20134:9:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83749,"nodeType":"FunctionDefinition","src":"20681:199:170","nodes":[],"body":{"id":83748,"nodeType":"Block","src":"20795:85:170","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83742,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83730,"src":"20839:10:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83743,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83732,"src":"20851:12:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83744,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83734,"src":"20865:6:170","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":83740,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20822:3:170","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20826:12:170","memberName":"encodePacked","nodeType":"MemberAccess","src":"20822:16:170","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20822:50:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83739,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20812:9:170","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:61:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83738,"id":83747,"nodeType":"Return","src":"20805:68:170"}]},"documentation":{"id":83728,"nodeType":"StructuredDocumentation","src":"20480:196:170","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":"20690:14:170","parameters":{"id":83735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83730,"mutability":"mutable","name":"_messageId","nameLocation":"20713:10:170","nodeType":"VariableDeclaration","scope":83749,"src":"20705:18:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20705:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83732,"mutability":"mutable","name":"_destination","nameLocation":"20733:12:170","nodeType":"VariableDeclaration","scope":83749,"src":"20725:20:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83731,"name":"address","nodeType":"ElementaryTypeName","src":"20725:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83734,"mutability":"mutable","name":"_value","nameLocation":"20755:6:170","nodeType":"VariableDeclaration","scope":83749,"src":"20747:14:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83733,"name":"uint128","nodeType":"ElementaryTypeName","src":"20747:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"20704:58:170"},"returnParameters":{"id":83738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83749,"src":"20786:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20786:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20785:9:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83786,"nodeType":"FunctionDefinition","src":"21384:646:170","nodes":[],"body":{"id":83785,"nodeType":"Block","src":"21694:336:170","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83774,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83752,"src":"21768:5:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83775,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83754,"src":"21791:12:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83776,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83756,"src":"21821:6:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83777,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83758,"src":"21845:9:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83778,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83760,"src":"21872:14:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":83779,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83762,"src":"21904:26:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83780,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83764,"src":"21948:15:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83781,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83766,"src":"21981:18:170","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":83772,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21734:3:170","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21738:12:170","memberName":"encodePacked","nodeType":"MemberAccess","src":"21734:16:170","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21734:279:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83771,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21711:9:170","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21711:312:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83770,"id":83784,"nodeType":"Return","src":"21704:319:170"}]},"documentation":{"id":83750,"nodeType":"StructuredDocumentation","src":"20886:493:170","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":"21393:19:170","parameters":{"id":83767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83752,"mutability":"mutable","name":"actor","nameLocation":"21430:5:170","nodeType":"VariableDeclaration","scope":83786,"src":"21422:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83751,"name":"address","nodeType":"ElementaryTypeName","src":"21422:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83754,"mutability":"mutable","name":"newStateHash","nameLocation":"21453:12:170","nodeType":"VariableDeclaration","scope":83786,"src":"21445:20:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21445:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83756,"mutability":"mutable","name":"exited","nameLocation":"21480:6:170","nodeType":"VariableDeclaration","scope":83786,"src":"21475:11:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83755,"name":"bool","nodeType":"ElementaryTypeName","src":"21475:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83758,"mutability":"mutable","name":"inheritor","nameLocation":"21504:9:170","nodeType":"VariableDeclaration","scope":83786,"src":"21496:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83757,"name":"address","nodeType":"ElementaryTypeName","src":"21496:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83760,"mutability":"mutable","name":"valueToReceive","nameLocation":"21531:14:170","nodeType":"VariableDeclaration","scope":83786,"src":"21523:22:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83759,"name":"uint128","nodeType":"ElementaryTypeName","src":"21523:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83762,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"21560:26:170","nodeType":"VariableDeclaration","scope":83786,"src":"21555:31:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83761,"name":"bool","nodeType":"ElementaryTypeName","src":"21555:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83764,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"21604:15:170","nodeType":"VariableDeclaration","scope":83786,"src":"21596:23:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21596:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83766,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"21637:18:170","nodeType":"VariableDeclaration","scope":83786,"src":"21629:26:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21629:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21412:249:170"},"returnParameters":{"id":83770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83786,"src":"21685:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21685:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21684:9:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83851,"nodeType":"FunctionDefinition","src":"22304:532:170","nodes":[],"body":{"id":83850,"nodeType":"Block","src":"22403:433:170","nodes":[],"statements":[{"assignments":[83797],"declarations":[{"constant":false,"id":83797,"mutability":"mutable","name":"start","nameLocation":"22421:5:170","nodeType":"VariableDeclaration","scope":83850,"src":"22413:13:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83796,"name":"uint256","nodeType":"ElementaryTypeName","src":"22413:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83802,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83798,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22429:5:170","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22435:6:170","memberName":"number","nodeType":"MemberAccess","src":"22429:12:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":83800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22444:1:170","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22429:16:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22413:32:170"},{"assignments":[83804],"declarations":[{"constant":false,"id":83804,"mutability":"mutable","name":"end","nameLocation":"22463:3:170","nodeType":"VariableDeclaration","scope":83850,"src":"22455:11:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83803,"name":"uint256","nodeType":"ElementaryTypeName","src":"22455:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83815,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83805,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83791,"src":"22469:6:170","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":83806,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22479:5:170","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22485:6:170","memberName":"number","nodeType":"MemberAccess","src":"22479:12:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22469:22:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83810,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22498:5:170","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22504:6:170","memberName":"number","nodeType":"MemberAccess","src":"22498:12:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":83812,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83791,"src":"22513:6:170","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"22498:21:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22469:50:170","trueExpression":{"hexValue":"30","id":83809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22494:1:170","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22455:64:170"},{"body":{"id":83846,"nodeType":"Block","src":"22564:243:170","statements":[{"assignments":[83824],"declarations":[{"constant":false,"id":83824,"mutability":"mutable","name":"ret","nameLocation":"22586:3:170","nodeType":"VariableDeclaration","scope":83846,"src":"22578:11:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83823,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22578:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83828,"initialValue":{"arguments":[{"id":83826,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83817,"src":"22602:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83825,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22592:9:170","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22592:12:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22578:26:170"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83829,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83824,"src":"22622:3:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83830,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83789,"src":"22629:4:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22622:11:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83835,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83824,"src":"22689:3:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22696:1:170","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22689:8:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83840,"nodeType":"IfStatement","src":"22685:52:170","trueBody":{"id":83839,"nodeType":"Block","src":"22699:38:170","statements":[{"id":83838,"nodeType":"Break","src":"22717:5:170"}]}},"id":83841,"nodeType":"IfStatement","src":"22618:119:170","trueBody":{"id":83834,"nodeType":"Block","src":"22635:44:170","statements":[{"expression":{"hexValue":"74727565","id":83832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22660:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83795,"id":83833,"nodeType":"Return","src":"22653:11:170"}]}},{"id":83845,"nodeType":"UncheckedBlock","src":"22751:46:170","statements":[{"expression":{"id":83843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"22779:3:170","subExpression":{"id":83842,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83817,"src":"22779:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83844,"nodeType":"ExpressionStatement","src":"22779:3:170"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83820,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83817,"src":"22553:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83821,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83804,"src":"22558:3:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22553:8:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83847,"initializationExpression":{"assignments":[83817],"declarations":[{"constant":false,"id":83817,"mutability":"mutable","name":"i","nameLocation":"22542:1:170","nodeType":"VariableDeclaration","scope":83847,"src":"22534:9:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83816,"name":"uint256","nodeType":"ElementaryTypeName","src":"22534:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83819,"initialValue":{"id":83818,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83797,"src":"22546:5:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22534:17:170"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"22529:278:170"},{"expression":{"hexValue":"66616c7365","id":83848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22824:5:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83795,"id":83849,"nodeType":"Return","src":"22817:12:170"}]},"documentation":{"id":83787,"nodeType":"StructuredDocumentation","src":"22036:263:170","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":"22313:18:170","parameters":{"id":83792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83789,"mutability":"mutable","name":"hash","nameLocation":"22340:4:170","nodeType":"VariableDeclaration","scope":83851,"src":"22332:12:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22332:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83791,"mutability":"mutable","name":"expiry","nameLocation":"22352:6:170","nodeType":"VariableDeclaration","scope":83851,"src":"22346:12:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83790,"name":"uint8","nodeType":"ElementaryTypeName","src":"22346:5:170","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"22331:28:170"},"returnParameters":{"id":83795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83794,"mutability":"mutable","name":"isPredecessor","nameLocation":"22388:13:170","nodeType":"VariableDeclaration","scope":83851,"src":"22383:18:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83793,"name":"bool","nodeType":"ElementaryTypeName","src":"22383:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22382:20:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83864,"nodeType":"FunctionDefinition","src":"22981:222:170","nodes":[],"body":{"id":83863,"nodeType":"Block","src":"23090:113:170","nodes":[],"statements":[{"expression":{"arguments":[{"id":83859,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83218,"src":"23139:21:170","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":83860,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83230,"src":"23178:16:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83858,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83417,"src":"23107:19:170","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$83417_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":83861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23128:9:170","23162:14:170"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"23107:89:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":83857,"id":83862,"nodeType":"Return","src":"23100:96:170"}]},"documentation":{"id":83852,"nodeType":"StructuredDocumentation","src":"22842:134:170","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"22990:26:170","parameters":{"id":83853,"nodeType":"ParameterList","parameters":[],"src":"23016:2:170"},"returnParameters":{"id":83857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83856,"mutability":"mutable","name":"computationSettings","nameLocation":"23069:19:170","nodeType":"VariableDeclaration","scope":83864,"src":"23042:46:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":83855,"nodeType":"UserDefinedTypeName","pathNode":{"id":83854,"name":"ComputationSettings","nameLocations":["23042:19:170"],"nodeType":"IdentifierPath","referencedDeclaration":83417,"src":"23042:19:170"},"referencedDeclaration":83417,"src":"23042:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"23041:48:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83887,"nodeType":"FunctionDefinition","src":"23329:229:170","nodes":[],"body":{"id":83886,"nodeType":"Block","src":"23416:142:170","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":83874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23477:1:170","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":83873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23469:7:170","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23469:7:170","typeDescriptions":{}}},"id":83875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23469:10:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":83878,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23507:5:170","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23513:6:170","memberName":"number","nodeType":"MemberAccess","src":"23507:12:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83876,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"23489:8:170","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$55635_$","typeString":"type(library SafeCast)"}},"id":83877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23498:8:170","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":54681,"src":"23489:17:170","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":83880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23489:31:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83881,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23533:4:170","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":83882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23538:9:170","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23533:14:170","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":83883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23533:16:170","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":83871,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83425,"src":"23445:16:170","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$83425_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":83884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23463:4:170","23481:6:170","23522:9:170"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"23445:106:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":83870,"id":83885,"nodeType":"Return","src":"23426:125:170"}]},"documentation":{"id":83865,"nodeType":"StructuredDocumentation","src":"23209:115:170","text":" @dev Creates new genesis block info.\n @return genesisBlockInfo The new genesis block info."},"implemented":true,"kind":"function","modifiers":[],"name":"newGenesis","nameLocation":"23338:10:170","parameters":{"id":83866,"nodeType":"ParameterList","parameters":[],"src":"23348:2:170"},"returnParameters":{"id":83870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83869,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"23398:16:170","nodeType":"VariableDeclaration","scope":83887,"src":"23374:40:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":83868,"nodeType":"UserDefinedTypeName","pathNode":{"id":83867,"name":"GenesisBlockInfo","nameLocations":["23374:16:170"],"nodeType":"IdentifierPath","referencedDeclaration":83425,"src":"23374:16:170"},"referencedDeclaration":83425,"src":"23374:16:170","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"23373:42:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84137,"nodeType":"FunctionDefinition","src":"24049:3813:170","nodes":[],"body":{"id":84136,"nodeType":"Block","src":"24312:3550:170","nodes":[],"statements":[{"assignments":[83909],"declarations":[{"constant":false,"id":83909,"mutability":"mutable","name":"eraStarted","nameLocation":"24384:10:170","nodeType":"VariableDeclaration","scope":84136,"src":"24376:18:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83908,"name":"uint256","nodeType":"ElementaryTypeName","src":"24376:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83915,"initialValue":{"arguments":[{"id":83911,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83891,"src":"24410:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83912,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24418:5:170","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24424:9:170","memberName":"timestamp","nodeType":"MemberAccess","src":"24418:15:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83910,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84370,"src":"24397:12:170","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":83914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24397:37:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24376:58:170"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83916,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"24448:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83917,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83909,"src":"24453:10:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24448:15:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83919,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24467:5:170","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24473:9:170","memberName":"timestamp","nodeType":"MemberAccess","src":"24467:15:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83921,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83909,"src":"24485:10:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83922,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83891,"src":"24498:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24505:9:170","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"24498:16:170","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24515:15:170","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":83517,"src":"24498:32:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24485:45:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24467:63:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24448:82:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83969,"nodeType":"Block","src":"24891:229:170","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83952,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"24913:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":83953,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24919:5:170","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24925:9:170","memberName":"timestamp","nodeType":"MemberAccess","src":"24919:15:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24913:21:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83956,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83239,"src":"24936:17:170","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24936:19:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83951,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24905:7:170","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24905:51:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83959,"nodeType":"ExpressionStatement","src":"24905:51:170"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83960,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"24975:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83961,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83909,"src":"24980:10:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24975:15:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83968,"nodeType":"IfStatement","src":"24971:69:170","trueBody":{"id":83967,"nodeType":"Block","src":"24992:48:170","statements":[{"expression":{"id":83965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83963,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"25010:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83964,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83909,"src":"25015:10:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25010:15:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83966,"nodeType":"ExpressionStatement","src":"25010:15:170"}]}}]},"id":83970,"nodeType":"IfStatement","src":"24444:676:170","trueBody":{"id":83950,"nodeType":"Block","src":"24532:353:170","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83929,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"24554:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":83930,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83891,"src":"24560:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24567:12:170","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"24560:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24580:9:170","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83424,"src":"24560:29:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"24554:35:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83934,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83233,"src":"24591:23:170","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24591:25:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83928,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24546:7:170","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24546:71:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83937,"nodeType":"ExpressionStatement","src":"24546:71:170"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83939,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"24639:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83940,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83891,"src":"24644:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24651:9:170","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"24644:16:170","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24661:3:170","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83513,"src":"24644:20:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24639:25:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83944,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83909,"src":"24668:10:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24639:39:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83946,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83236,"src":"24680:29:170","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24680:31:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83938,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24631:7:170","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24631:81:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83949,"nodeType":"ExpressionStatement","src":"24631:81:170"}]}},{"assignments":[83973],"declarations":[{"constant":false,"id":83973,"mutability":"mutable","name":"validators","nameLocation":"25201:10:170","nodeType":"VariableDeclaration","scope":84136,"src":"25182:29:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83972,"nodeType":"UserDefinedTypeName","pathNode":{"id":83971,"name":"Validators","nameLocations":["25182:10:170"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"25182:10:170"},"referencedDeclaration":83278,"src":"25182:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":83978,"initialValue":{"arguments":[{"id":83975,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83891,"src":"25227:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83976,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"25235:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83974,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84209,"src":"25214:12:170","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25214:24:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25182:56:170"},{"assignments":[83980],"declarations":[{"constant":false,"id":83980,"mutability":"mutable","name":"_messageHash","nameLocation":"25256:12:170","nodeType":"VariableDeclaration","scope":84136,"src":"25248:20:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25248:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83988,"initialValue":{"arguments":[{"id":83986,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83895,"src":"25317:9:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":83983,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"25279:4:170","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$84435","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$84435","typeString":"library Gear"}],"id":83982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25271:7:170","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83981,"name":"address","nodeType":"ElementaryTypeName","src":"25271:7:170","typeDescriptions":{}}},"id":83984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25271:13:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25285:31:170","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":52224,"src":"25271:45:170","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":83987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25271:56:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25248:79:170"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"},"id":83992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83989,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83898,"src":"25342:14:170","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83990,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83576,"src":"25360:13:170","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83576_$","typeString":"type(enum Gear.SignatureType)"}},"id":83991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25374:5:170","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":83574,"src":"25360:19:170","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"}},"src":"25342:37:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"},"id":84045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84042,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83898,"src":"26538:14:170","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":84043,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83576,"src":"26556:13:170","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83576_$","typeString":"type(enum Gear.SignatureType)"}},"id":84044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26570:5:170","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":83575,"src":"26556:19:170","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"}},"src":"26538:37:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84132,"nodeType":"IfStatement","src":"26534:1299:170","trueBody":{"id":84131,"nodeType":"Block","src":"26577:1256:170","statements":[{"assignments":[84047],"declarations":[{"constant":false,"id":84047,"mutability":"mutable","name":"threshold","nameLocation":"26599:9:170","nodeType":"VariableDeclaration","scope":84131,"src":"26591:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84046,"name":"uint256","nodeType":"ElementaryTypeName","src":"26591:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84059,"initialValue":{"arguments":[{"expression":{"expression":{"id":84049,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"26648:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26659:4:170","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83274,"src":"26648:15:170","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":84051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26664:6:170","memberName":"length","nodeType":"MemberAccess","src":"26648:22:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":84052,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83891,"src":"26688:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26695:18:170","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"26688:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26714:18:170","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83521,"src":"26688:44:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":84055,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83891,"src":"26750:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26757:18:170","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"26750:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26776:20:170","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83523,"src":"26750:46:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":84048,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84322,"src":"26611:19:170","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":84058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26611:199:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26591:219:170"},{"assignments":[84061],"declarations":[{"constant":false,"id":84061,"mutability":"mutable","name":"validSignatures","nameLocation":"26833:15:170","nodeType":"VariableDeclaration","scope":84131,"src":"26825:23:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84060,"name":"uint256","nodeType":"ElementaryTypeName","src":"26825:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84063,"initialValue":{"hexValue":"30","id":84062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26851:1:170","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26825:27:170"},{"body":{"id":84127,"nodeType":"Block","src":"26916:880:170","statements":[{"assignments":[84076],"declarations":[{"constant":false,"id":84076,"mutability":"mutable","name":"signature","nameLocation":"26949:9:170","nodeType":"VariableDeclaration","scope":84127,"src":"26934:24:170","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":84075,"name":"bytes","nodeType":"ElementaryTypeName","src":"26934:5:170","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":84080,"initialValue":{"baseExpression":{"id":84077,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83901,"src":"26961:11:170","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":84079,"indexExpression":{"id":84078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84065,"src":"26973:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26961:14:170","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"26934:41:170"},{"assignments":[84082],"declarations":[{"constant":false,"id":84082,"mutability":"mutable","name":"validator","nameLocation":"27002:9:170","nodeType":"VariableDeclaration","scope":84127,"src":"26994:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84081,"name":"address","nodeType":"ElementaryTypeName","src":"26994:7:170","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84087,"initialValue":{"arguments":[{"id":84085,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84076,"src":"27035:9:170","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":84083,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83980,"src":"27014:12:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27027:7:170","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50794,"src":"27014:20:170","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":84086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27014:31:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"26994:51:170"},{"condition":{"baseExpression":{"expression":{"id":84088,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"27068:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27079:3:170","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83270,"src":"27068:14:170","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":84091,"indexExpression":{"id":84090,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84082,"src":"27083:9:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27068:25:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84126,"nodeType":"IfStatement","src":"27064:718:170","trueBody":{"id":84125,"nodeType":"Block","src":"27095:687:170","statements":[{"assignments":[84094],"declarations":[{"constant":false,"id":84094,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"27320:30:170","nodeType":"VariableDeclaration","scope":84125,"src":"27312:38:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27312:7:170","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":84099,"initialValue":{"arguments":[{"id":84097,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84082,"src":"27390:9:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":84095,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83893,"src":"27353:22:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27376:13:170","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":48892,"src":"27353:36:170","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":84098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27353:47:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27312:88:170"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":84100,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84094,"src":"27427:30:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27458:9:170","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"27427:40:170","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":84102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27427:42:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":84103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27470:5:170","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":50612,"src":"27427:48:170","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":84104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27427:50:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":84115,"nodeType":"Block","src":"27542:104:170","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":84112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27618:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":84107,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84094,"src":"27568:30:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27599:9:170","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"27568:40:170","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":84110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27568:42:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":84111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27611:6:170","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":50623,"src":"27568:49:170","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":84113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27568:55:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84114,"nodeType":"ExpressionStatement","src":"27568:55:170"}]},"id":84116,"nodeType":"IfStatement","src":"27423:223:170","trueBody":{"id":84106,"nodeType":"Block","src":"27479:57:170","statements":[{"id":84105,"nodeType":"Continue","src":"27505:8:170"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27672:17:170","subExpression":{"id":84117,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"27674:15:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":84119,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84047,"src":"27693:9:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27672:30:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84124,"nodeType":"IfStatement","src":"27668:96:170","trueBody":{"id":84123,"nodeType":"Block","src":"27704:60:170","statements":[{"expression":{"hexValue":"74727565","id":84121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27737:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83907,"id":84122,"nodeType":"Return","src":"27730:11:170"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84065,"src":"26887:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":84069,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83901,"src":"26891:11:170","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":84070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26903:6:170","memberName":"length","nodeType":"MemberAccess","src":"26891:18:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26887:22:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84128,"initializationExpression":{"assignments":[84065],"declarations":[{"constant":false,"id":84065,"mutability":"mutable","name":"i","nameLocation":"26880:1:170","nodeType":"VariableDeclaration","scope":84128,"src":"26872:9:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84064,"name":"uint256","nodeType":"ElementaryTypeName","src":"26872:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84067,"initialValue":{"hexValue":"30","id":84066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26884:1:170","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26872:13:170"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":84073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26911:3:170","subExpression":{"id":84072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84065,"src":"26911:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84074,"nodeType":"ExpressionStatement","src":"26911:3:170"},"nodeType":"ForStatement","src":"26867:929:170"},{"expression":{"hexValue":"66616c7365","id":84129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27817:5:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83907,"id":84130,"nodeType":"Return","src":"27810:12:170"}]}},"id":84133,"nodeType":"IfStatement","src":"25338:2495:170","trueBody":{"id":84041,"nodeType":"Block","src":"25381:1147:170","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83994,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83901,"src":"25403:11:170","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25415:6:170","memberName":"length","nodeType":"MemberAccess","src":"25403:18:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":83996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25425:1:170","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25403:23:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83998,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83242,"src":"25428:26:170","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25428:28:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25395:7:170","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25395:62:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84001,"nodeType":"ExpressionStatement","src":"25395:62:170"},{"assignments":[84003],"declarations":[{"constant":false,"id":84003,"mutability":"mutable","name":"_signature","nameLocation":"25485:10:170","nodeType":"VariableDeclaration","scope":84041,"src":"25472:23:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":84002,"name":"bytes","nodeType":"ElementaryTypeName","src":"25472:5:170","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":84007,"initialValue":{"baseExpression":{"id":84004,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83901,"src":"25498:11:170","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":84006,"indexExpression":{"hexValue":"30","id":84005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25510:1:170","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25498:14:170","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"25472:40:170"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84009,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84003,"src":"25534:10:170","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":84010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25545:6:170","memberName":"length","nodeType":"MemberAccess","src":"25534:17:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":84011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25555:2:170","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"25534:23:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84013,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83245,"src":"25559:27:170","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25559:29:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25526:7:170","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25526:63:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84016,"nodeType":"ExpressionStatement","src":"25526:63:170"},{"assignments":[84018],"declarations":[{"constant":false,"id":84018,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"25612:21:170","nodeType":"VariableDeclaration","scope":84041,"src":"25604:29:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84017,"name":"uint256","nodeType":"ElementaryTypeName","src":"25604:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84019,"nodeType":"VariableDeclarationStatement","src":"25604:29:170"},{"assignments":[84021],"declarations":[{"constant":false,"id":84021,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"25655:21:170","nodeType":"VariableDeclaration","scope":84041,"src":"25647:29:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84020,"name":"uint256","nodeType":"ElementaryTypeName","src":"25647:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84022,"nodeType":"VariableDeclarationStatement","src":"25647:29:170"},{"assignments":[84024],"declarations":[{"constant":false,"id":84024,"mutability":"mutable","name":"_signatureZ","nameLocation":"25698:11:170","nodeType":"VariableDeclaration","scope":84041,"src":"25690:19:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84023,"name":"uint256","nodeType":"ElementaryTypeName","src":"25690:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84025,"nodeType":"VariableDeclarationStatement","src":"25690:19:170"},{"AST":{"nativeSrc":"25749:215:170","nodeType":"YulBlock","src":"25749:215:170","statements":[{"nativeSrc":"25767:53:170","nodeType":"YulAssignment","src":"25767:53:170","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"25802:10:170","nodeType":"YulIdentifier","src":"25802:10:170"},{"kind":"number","nativeSrc":"25814:4:170","nodeType":"YulLiteral","src":"25814:4:170","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25798:3:170","nodeType":"YulIdentifier","src":"25798:3:170"},"nativeSrc":"25798:21:170","nodeType":"YulFunctionCall","src":"25798:21:170"}],"functionName":{"name":"mload","nativeSrc":"25792:5:170","nodeType":"YulIdentifier","src":"25792:5:170"},"nativeSrc":"25792:28:170","nodeType":"YulFunctionCall","src":"25792:28:170"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"25767:21:170","nodeType":"YulIdentifier","src":"25767:21:170"}]},{"nativeSrc":"25837:53:170","nodeType":"YulAssignment","src":"25837:53:170","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"25872:10:170","nodeType":"YulIdentifier","src":"25872:10:170"},{"kind":"number","nativeSrc":"25884:4:170","nodeType":"YulLiteral","src":"25884:4:170","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25868:3:170","nodeType":"YulIdentifier","src":"25868:3:170"},"nativeSrc":"25868:21:170","nodeType":"YulFunctionCall","src":"25868:21:170"}],"functionName":{"name":"mload","nativeSrc":"25862:5:170","nodeType":"YulIdentifier","src":"25862:5:170"},"nativeSrc":"25862:28:170","nodeType":"YulFunctionCall","src":"25862:28:170"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"25837:21:170","nodeType":"YulIdentifier","src":"25837:21:170"}]},{"nativeSrc":"25907:43:170","nodeType":"YulAssignment","src":"25907:43:170","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"25932:10:170","nodeType":"YulIdentifier","src":"25932:10:170"},{"kind":"number","nativeSrc":"25944:4:170","nodeType":"YulLiteral","src":"25944:4:170","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25928:3:170","nodeType":"YulIdentifier","src":"25928:3:170"},"nativeSrc":"25928:21:170","nodeType":"YulFunctionCall","src":"25928:21:170"}],"functionName":{"name":"mload","nativeSrc":"25922:5:170","nodeType":"YulIdentifier","src":"25922:5:170"},"nativeSrc":"25922:28:170","nodeType":"YulFunctionCall","src":"25922:28:170"},"variableNames":[{"name":"_signatureZ","nativeSrc":"25907:11:170","nodeType":"YulIdentifier","src":"25907:11:170"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":84003,"isOffset":false,"isSlot":false,"src":"25802:10:170","valueSize":1},{"declaration":84003,"isOffset":false,"isSlot":false,"src":"25872:10:170","valueSize":1},{"declaration":84003,"isOffset":false,"isSlot":false,"src":"25932:10:170","valueSize":1},{"declaration":84018,"isOffset":false,"isSlot":false,"src":"25767:21:170","valueSize":1},{"declaration":84021,"isOffset":false,"isSlot":false,"src":"25837:21:170","valueSize":1},{"declaration":84024,"isOffset":false,"isSlot":false,"src":"25907:11:170","valueSize":1}],"flags":["memory-safe"],"id":84026,"nodeType":"InlineAssembly","src":"25724:240:170"},{"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":84029,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"26284:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26295:19:170","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"26284:30:170","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":84031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26315:1:170","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":83254,"src":"26284:32:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":84032,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"26334:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26345:19:170","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"26334:30:170","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":84034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26365:1:170","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":83256,"src":"26334:32:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84035,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84018,"src":"26384:21:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84036,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84021,"src":"26423:21:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84037,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84024,"src":"26462:11:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84038,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83980,"src":"26491:12:170","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":84027,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"26245:5:170","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":84028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26251:15:170","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":40964,"src":"26245:21:170","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":84039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26245:272:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83907,"id":84040,"nodeType":"Return","src":"26238:279:170"}]}},{"expression":{"hexValue":"66616c7365","id":84134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27850:5:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83907,"id":84135,"nodeType":"Return","src":"27843:12:170"}]},"documentation":{"id":83888,"nodeType":"StructuredDocumentation","src":"23564:480:170","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":"24058:20:170","parameters":{"id":83904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83891,"mutability":"mutable","name":"router","nameLocation":"24112:6:170","nodeType":"VariableDeclaration","scope":84137,"src":"24088:30:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83890,"nodeType":"UserDefinedTypeName","pathNode":{"id":83889,"name":"IRouter.Storage","nameLocations":["24088:7:170","24096:7:170"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"24088:15:170"},"referencedDeclaration":74535,"src":"24088:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83893,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"24136:22:170","nodeType":"VariableDeclaration","scope":84137,"src":"24128:30:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24128:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83895,"mutability":"mutable","name":"_dataHash","nameLocation":"24176:9:170","nodeType":"VariableDeclaration","scope":84137,"src":"24168:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24168:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83898,"mutability":"mutable","name":"_signatureType","nameLocation":"24209:14:170","nodeType":"VariableDeclaration","scope":84137,"src":"24195:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"},"typeName":{"id":83897,"nodeType":"UserDefinedTypeName","pathNode":{"id":83896,"name":"SignatureType","nameLocations":["24195:13:170"],"nodeType":"IdentifierPath","referencedDeclaration":83576,"src":"24195:13:170"},"referencedDeclaration":83576,"src":"24195:13:170","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":83901,"mutability":"mutable","name":"_signatures","nameLocation":"24250:11:170","nodeType":"VariableDeclaration","scope":84137,"src":"24233:28:170","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83899,"name":"bytes","nodeType":"ElementaryTypeName","src":"24233:5:170","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83900,"nodeType":"ArrayTypeName","src":"24233:7:170","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":83903,"mutability":"mutable","name":"ts","nameLocation":"24279:2:170","nodeType":"VariableDeclaration","scope":84137,"src":"24271:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83902,"name":"uint256","nodeType":"ElementaryTypeName","src":"24271:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24078:209:170"},"returnParameters":{"id":83907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84137,"src":"24306:4:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83905,"name":"bool","nodeType":"ElementaryTypeName","src":"24306:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24305:6:170"},"scope":84435,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":84154,"nodeType":"FunctionDefinition","src":"27981:166:170","nodes":[],"body":{"id":84153,"nodeType":"Block","src":"28086:61:170","nodes":[],"statements":[{"expression":{"arguments":[{"id":84148,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84141,"src":"28116:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84149,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28124:5:170","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28130:9:170","memberName":"timestamp","nodeType":"MemberAccess","src":"28124:15:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84147,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84209,"src":"28103:12:170","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":84151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28103:37:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":84146,"id":84152,"nodeType":"Return","src":"28096:44:170"}]},"documentation":{"id":84138,"nodeType":"StructuredDocumentation","src":"27868:108:170","text":" @dev Returns the validators for the current era.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"currentEraValidators","nameLocation":"27990:20:170","parameters":{"id":84142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84141,"mutability":"mutable","name":"router","nameLocation":"28035:6:170","nodeType":"VariableDeclaration","scope":84154,"src":"28011:30:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84140,"nodeType":"UserDefinedTypeName","pathNode":{"id":84139,"name":"IRouter.Storage","nameLocations":["28011:7:170","28019:7:170"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"28011:15:170"},"referencedDeclaration":74535,"src":"28011:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28010:32:170"},"returnParameters":{"id":84146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84145,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84154,"src":"28066:18:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84144,"nodeType":"UserDefinedTypeName","pathNode":{"id":84143,"name":"Validators","nameLocations":["28066:10:170"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"28066:10:170"},"referencedDeclaration":83278,"src":"28066:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28065:20:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84181,"nodeType":"FunctionDefinition","src":"28353:322:170","nodes":[],"body":{"id":84180,"nodeType":"Block","src":"28459:216:170","nodes":[],"statements":[{"condition":{"arguments":[{"id":84165,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84158,"src":"28499:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84166,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28507:5:170","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28513:9:170","memberName":"timestamp","nodeType":"MemberAccess","src":"28507:15:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84164,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84276,"src":"28473:25:170","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":84168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28473:50:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":84178,"nodeType":"Block","src":"28600:69:170","statements":[{"expression":{"expression":{"expression":{"id":84174,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84158,"src":"28621:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28628:18:170","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"28621:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28647:11:170","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83529,"src":"28621:37:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":84163,"id":84177,"nodeType":"Return","src":"28614:44:170"}]},"id":84179,"nodeType":"IfStatement","src":"28469:200:170","trueBody":{"id":84173,"nodeType":"Block","src":"28525:69:170","statements":[{"expression":{"expression":{"expression":{"id":84169,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84158,"src":"28546:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28553:18:170","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"28546:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28572:11:170","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83526,"src":"28546:37:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":84163,"id":84172,"nodeType":"Return","src":"28539:44:170"}]}}]},"documentation":{"id":84155,"nodeType":"StructuredDocumentation","src":"28153:195:170","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":"28362:21:170","parameters":{"id":84159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84158,"mutability":"mutable","name":"router","nameLocation":"28408:6:170","nodeType":"VariableDeclaration","scope":84181,"src":"28384:30:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84157,"nodeType":"UserDefinedTypeName","pathNode":{"id":84156,"name":"IRouter.Storage","nameLocations":["28384:7:170","28392:7:170"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"28384:15:170"},"referencedDeclaration":74535,"src":"28384:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28383:32:170"},"returnParameters":{"id":84163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84181,"src":"28439:18:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84161,"nodeType":"UserDefinedTypeName","pathNode":{"id":84160,"name":"Validators","nameLocations":["28439:10:170"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"28439:10:170"},"referencedDeclaration":83278,"src":"28439:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28438:20:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84209,"nodeType":"FunctionDefinition","src":"28812:312:170","nodes":[],"body":{"id":84208,"nodeType":"Block","src":"28921:203:170","nodes":[],"statements":[{"condition":{"arguments":[{"id":84194,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84185,"src":"28961:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84195,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84187,"src":"28969:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84193,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84276,"src":"28935:25:170","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":84196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28935:37:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":84206,"nodeType":"Block","src":"29049:69:170","statements":[{"expression":{"expression":{"expression":{"id":84202,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84185,"src":"29070:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29077:18:170","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"29070:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29096:11:170","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83526,"src":"29070:37:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":84192,"id":84205,"nodeType":"Return","src":"29063:44:170"}]},"id":84207,"nodeType":"IfStatement","src":"28931:187:170","trueBody":{"id":84201,"nodeType":"Block","src":"28974:69:170","statements":[{"expression":{"expression":{"expression":{"id":84197,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84185,"src":"28995:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29002:18:170","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"28995:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29021:11:170","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83529,"src":"28995:37:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":84192,"id":84200,"nodeType":"Return","src":"28988:44:170"}]}}]},"documentation":{"id":84182,"nodeType":"StructuredDocumentation","src":"28681:126:170","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":"28821:12:170","parameters":{"id":84188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84185,"mutability":"mutable","name":"router","nameLocation":"28858:6:170","nodeType":"VariableDeclaration","scope":84209,"src":"28834:30:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84184,"nodeType":"UserDefinedTypeName","pathNode":{"id":84183,"name":"IRouter.Storage","nameLocations":["28834:7:170","28842:7:170"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"28834:15:170"},"referencedDeclaration":74535,"src":"28834:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84187,"mutability":"mutable","name":"ts","nameLocation":"28874:2:170","nodeType":"VariableDeclaration","scope":84209,"src":"28866:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84186,"name":"uint256","nodeType":"ElementaryTypeName","src":"28866:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28833:44:170"},"returnParameters":{"id":84192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84209,"src":"28901:18:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84190,"nodeType":"UserDefinedTypeName","pathNode":{"id":84189,"name":"Validators","nameLocations":["28901:10:170"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"28901:10:170"},"referencedDeclaration":83278,"src":"28901:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28900:20:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84276,"nodeType":"FunctionDefinition","src":"29531:863:170","nodes":[],"body":{"id":84275,"nodeType":"Block","src":"29675:719:170","nodes":[],"statements":[{"assignments":[84221],"declarations":[{"constant":false,"id":84221,"mutability":"mutable","name":"ts0","nameLocation":"29693:3:170","nodeType":"VariableDeclaration","scope":84275,"src":"29685:11:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84220,"name":"uint256","nodeType":"ElementaryTypeName","src":"29685:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84226,"initialValue":{"expression":{"expression":{"expression":{"id":84222,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84213,"src":"29699:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29706:18:170","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"29699:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29725:11:170","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83526,"src":"29699:37:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}},"id":84225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29737:16:170","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83277,"src":"29699:54:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29685:68:170"},{"assignments":[84228],"declarations":[{"constant":false,"id":84228,"mutability":"mutable","name":"ts1","nameLocation":"29771:3:170","nodeType":"VariableDeclaration","scope":84275,"src":"29763:11:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84227,"name":"uint256","nodeType":"ElementaryTypeName","src":"29763:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84233,"initialValue":{"expression":{"expression":{"expression":{"id":84229,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84213,"src":"29777:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29784:18:170","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"29777:25:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29803:11:170","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83529,"src":"29777:37:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}},"id":84232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29815:16:170","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83277,"src":"29777:54:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29763:68:170"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84235,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84221,"src":"29905:3:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":84236,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84228,"src":"29912:3:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29905:10:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84238,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83248,"src":"29917:27:170","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29917:29:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84234,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29897:7:170","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29897:50:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84241,"nodeType":"ExpressionStatement","src":"29897:50:170"},{"assignments":[84243],"declarations":[{"constant":false,"id":84243,"mutability":"mutable","name":"ts1Greater","nameLocation":"29963:10:170","nodeType":"VariableDeclaration","scope":84275,"src":"29958:15:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84242,"name":"bool","nodeType":"ElementaryTypeName","src":"29958:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84247,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84244,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84221,"src":"29976:3:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":84245,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84228,"src":"29982:3:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29976:9:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"29958:27:170"},{"assignments":[84249],"declarations":[{"constant":false,"id":84249,"mutability":"mutable","name":"tsGe0","nameLocation":"30000:5:170","nodeType":"VariableDeclaration","scope":84275,"src":"29995:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84248,"name":"bool","nodeType":"ElementaryTypeName","src":"29995:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84253,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84250,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84221,"src":"30008:3:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":84251,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84215,"src":"30015:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30008:9:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"29995:22:170"},{"assignments":[84255],"declarations":[{"constant":false,"id":84255,"mutability":"mutable","name":"tsGe1","nameLocation":"30032:5:170","nodeType":"VariableDeclaration","scope":84275,"src":"30027:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84254,"name":"bool","nodeType":"ElementaryTypeName","src":"30027:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84259,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84256,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84228,"src":"30040:3:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":84257,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84215,"src":"30047:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30040:9:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30027:22:170"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84261,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"30141:5:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":84262,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84255,"src":"30150:5:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30141:14:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84264,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83251,"src":"30157:30:170","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30157:32:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30133:7:170","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30133:57:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84267,"nodeType":"ExpressionStatement","src":"30133:57:170"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84268,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84243,"src":"30357:10:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84269,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"30372:5:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":84270,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84255,"src":"30381:5:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30372:14:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":84272,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30371:16:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30357:30:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":84219,"id":84274,"nodeType":"Return","src":"30350:37:170"}]},"documentation":{"id":84210,"nodeType":"StructuredDocumentation","src":"29130:396:170","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":"29540:25:170","parameters":{"id":84216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84213,"mutability":"mutable","name":"router","nameLocation":"29590:6:170","nodeType":"VariableDeclaration","scope":84276,"src":"29566:30:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84212,"nodeType":"UserDefinedTypeName","pathNode":{"id":84211,"name":"IRouter.Storage","nameLocations":["29566:7:170","29574:7:170"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"29566:15:170"},"referencedDeclaration":74535,"src":"29566:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84215,"mutability":"mutable","name":"ts","nameLocation":"29606:2:170","nodeType":"VariableDeclaration","scope":84276,"src":"29598:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84214,"name":"uint256","nodeType":"ElementaryTypeName","src":"29598:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29565:44:170"},"returnParameters":{"id":84219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84218,"mutability":"mutable","name":"isSlot1","nameLocation":"29662:7:170","nodeType":"VariableDeclaration","scope":84276,"src":"29657:12:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84217,"name":"bool","nodeType":"ElementaryTypeName","src":"29657:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29656:14:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84322,"nodeType":"FunctionDefinition","src":"30896:456:170","nodes":[],"body":{"id":84321,"nodeType":"Block","src":"31079:273:170","nodes":[],"statements":[{"assignments":[84289],"declarations":[{"constant":false,"id":84289,"mutability":"mutable","name":"a","nameLocation":"31097:1:170","nodeType":"VariableDeclaration","scope":84321,"src":"31089:9:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84288,"name":"uint256","nodeType":"ElementaryTypeName","src":"31089:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84290,"nodeType":"VariableDeclarationStatement","src":"31089:9:170"},{"id":84297,"nodeType":"UncheckedBlock","src":"31108:76:170","statements":[{"expression":{"id":84295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":84291,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84289,"src":"31132:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84292,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84279,"src":"31136:16:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":84293,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84281,"src":"31155:18:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31136:37:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31132:41:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84296,"nodeType":"ExpressionStatement","src":"31132:41:170"}]},{"assignments":[84299],"declarations":[{"constant":false,"id":84299,"mutability":"mutable","name":"d","nameLocation":"31201:1:170","nodeType":"VariableDeclaration","scope":84321,"src":"31193:9:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31193:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84303,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84300,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84289,"src":"31205:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":84301,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84283,"src":"31209:20:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31205:24:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31193:36:170"},{"assignments":[84305],"declarations":[{"constant":false,"id":84305,"mutability":"mutable","name":"r","nameLocation":"31247:1:170","nodeType":"VariableDeclaration","scope":84321,"src":"31239:9:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84304,"name":"uint256","nodeType":"ElementaryTypeName","src":"31239:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84309,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84306,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84289,"src":"31251:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":84307,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84283,"src":"31255:20:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31251:24:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31239:36:170"},{"id":84320,"nodeType":"UncheckedBlock","src":"31285:61:170","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84310,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84305,"src":"31317:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":84311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31321:1:170","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31317:5:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":84313,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31316:7:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84317,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84299,"src":"31334:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31316:19:170","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84314,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84299,"src":"31326:1:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":84315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31330:1:170","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"31326:5:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84287,"id":84319,"nodeType":"Return","src":"31309:26:170"}]}]},"documentation":{"id":84277,"nodeType":"StructuredDocumentation","src":"30400:491:170","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":"30905:19:170","parameters":{"id":84284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84279,"mutability":"mutable","name":"validatorsAmount","nameLocation":"30933:16:170","nodeType":"VariableDeclaration","scope":84322,"src":"30925:24:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84278,"name":"uint256","nodeType":"ElementaryTypeName","src":"30925:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":84281,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"30959:18:170","nodeType":"VariableDeclaration","scope":84322,"src":"30951:26:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84280,"name":"uint128","nodeType":"ElementaryTypeName","src":"30951:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":84283,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"30987:20:170","nodeType":"VariableDeclaration","scope":84322,"src":"30979:28:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84282,"name":"uint128","nodeType":"ElementaryTypeName","src":"30979:7:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"30924:84:170"},"returnParameters":{"id":84287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84286,"mutability":"mutable","name":"threshold","nameLocation":"31064:9:170","nodeType":"VariableDeclaration","scope":84322,"src":"31056:17:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84285,"name":"uint256","nodeType":"ElementaryTypeName","src":"31056:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31055:19:170"},"scope":84435,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":84345,"nodeType":"FunctionDefinition","src":"31537:179:170","nodes":[],"body":{"id":84344,"nodeType":"Block","src":"31633:83:170","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84333,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84328,"src":"31651:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":84334,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84326,"src":"31656:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31663:12:170","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"31656:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31676:9:170","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83424,"src":"31656:29:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"31651:34:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":84338,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31650:36:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":84339,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84326,"src":"31689:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:9:170","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"31689:16:170","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31706:3:170","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83513,"src":"31689:20:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31650:59:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84332,"id":84343,"nodeType":"Return","src":"31643:66:170"}]},"documentation":{"id":84323,"nodeType":"StructuredDocumentation","src":"31358:174:170","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":"31546:10:170","parameters":{"id":84329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84326,"mutability":"mutable","name":"router","nameLocation":"31581:6:170","nodeType":"VariableDeclaration","scope":84345,"src":"31557:30:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84325,"nodeType":"UserDefinedTypeName","pathNode":{"id":84324,"name":"IRouter.Storage","nameLocations":["31557:7:170","31565:7:170"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"31557:15:170"},"referencedDeclaration":74535,"src":"31557:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84328,"mutability":"mutable","name":"ts","nameLocation":"31597:2:170","nodeType":"VariableDeclaration","scope":84345,"src":"31589:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84327,"name":"uint256","nodeType":"ElementaryTypeName","src":"31589:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31556:44:170"},"returnParameters":{"id":84332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84345,"src":"31624:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84330,"name":"uint256","nodeType":"ElementaryTypeName","src":"31624:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31623:9:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84370,"nodeType":"FunctionDefinition","src":"31932:199:170","nodes":[],"body":{"id":84369,"nodeType":"Block","src":"32030:101:170","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84356,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84349,"src":"32047:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32054:12:170","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"32047:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32067:9:170","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83424,"src":"32047:29:170","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":84360,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84349,"src":"32090:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84361,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84351,"src":"32098:2:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84359,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84345,"src":"32079:10:170","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32079:22:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":84363,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84349,"src":"32104:6:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32111:9:170","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"32104:16:170","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32121:3:170","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83513,"src":"32104:20:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32079:45:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32047:77:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84355,"id":84368,"nodeType":"Return","src":"32040:84:170"}]},"documentation":{"id":84346,"nodeType":"StructuredDocumentation","src":"31722:205:170","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":"31941:12:170","parameters":{"id":84352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84349,"mutability":"mutable","name":"router","nameLocation":"31978:6:170","nodeType":"VariableDeclaration","scope":84370,"src":"31954:30:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84348,"nodeType":"UserDefinedTypeName","pathNode":{"id":84347,"name":"IRouter.Storage","nameLocations":["31954:7:170","31962:7:170"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"31954:15:170"},"referencedDeclaration":74535,"src":"31954:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84351,"mutability":"mutable","name":"ts","nameLocation":"31994:2:170","nodeType":"VariableDeclaration","scope":84370,"src":"31986:10:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84350,"name":"uint256","nodeType":"ElementaryTypeName","src":"31986:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31953:44:170"},"returnParameters":{"id":84355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84370,"src":"32021:7:170","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84353,"name":"uint256","nodeType":"ElementaryTypeName","src":"32021:7:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32020:9:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84393,"nodeType":"FunctionDefinition","src":"32471:467:170","nodes":[],"body":{"id":84392,"nodeType":"Block","src":"32617:321:170","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":84382,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84374,"src":"32689:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32700:19:170","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"32689:30:170","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":84384,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84374,"src":"32775:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32786:40:170","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":83265,"src":"32775:51:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":84386,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84374,"src":"32846:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32857:4:170","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83274,"src":"32846:15:170","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":84388,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84374,"src":"32893:10:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32904:16:170","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83277,"src":"32893:27:170","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_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":84380,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"32634:4:170","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":84381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32639:14:170","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":83290,"src":"32634:19:170","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$83290_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":84390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32668:19:170","32733:40:170","32840:4:170","32875:16:170"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"32634:297:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":84379,"id":84391,"nodeType":"Return","src":"32627:304:170"}]},"documentation":{"id":84371,"nodeType":"StructuredDocumentation","src":"32137:329:170","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":"32480:6:170","parameters":{"id":84375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84374,"mutability":"mutable","name":"validators","nameLocation":"32511:10:170","nodeType":"VariableDeclaration","scope":84393,"src":"32487:34:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84373,"nodeType":"UserDefinedTypeName","pathNode":{"id":84372,"name":"Gear.Validators","nameLocations":["32487:4:170","32492:10:170"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"32487:15:170"},"referencedDeclaration":83278,"src":"32487:15:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"32486:36:170"},"returnParameters":{"id":84379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84378,"mutability":"mutable","name":"validatorsView","nameLocation":"32597:14:170","nodeType":"VariableDeclaration","scope":84393,"src":"32570:41:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84377,"nodeType":"UserDefinedTypeName","pathNode":{"id":84376,"name":"Gear.ValidatorsView","nameLocations":["32570:4:170","32575:14:170"],"nodeType":"IdentifierPath","referencedDeclaration":83290,"src":"32570:19:170"},"referencedDeclaration":83290,"src":"32570:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"32569:43:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84434,"nodeType":"FunctionDefinition","src":"33235:581:170","nodes":[],"body":{"id":84433,"nodeType":"Block","src":"33393:423:170","nodes":[],"statements":[{"assignments":[84407],"declarations":[{"constant":false,"id":84407,"mutability":"mutable","name":"validators0","nameLocation":"33430:11:170","nodeType":"VariableDeclaration","scope":84433,"src":"33403:38:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84406,"nodeType":"UserDefinedTypeName","pathNode":{"id":84405,"name":"Gear.ValidatorsView","nameLocations":["33403:4:170","33408:14:170"],"nodeType":"IdentifierPath","referencedDeclaration":83290,"src":"33403:19:170"},"referencedDeclaration":83290,"src":"33403:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84412,"initialValue":{"arguments":[{"expression":{"id":84409,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84397,"src":"33451:8:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33460:11:170","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83526,"src":"33451:20:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}],"id":84408,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84393,84434],"referencedDeclaration":84393,"src":"33444:6:170","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$83278_storage_ptr_$returns$_t_struct$_ValidatorsView_$83290_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33444:28:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"33403:69:170"},{"assignments":[84417],"declarations":[{"constant":false,"id":84417,"mutability":"mutable","name":"validators1","nameLocation":"33509:11:170","nodeType":"VariableDeclaration","scope":84433,"src":"33482:38:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84416,"nodeType":"UserDefinedTypeName","pathNode":{"id":84415,"name":"Gear.ValidatorsView","nameLocations":["33482:4:170","33487:14:170"],"nodeType":"IdentifierPath","referencedDeclaration":83290,"src":"33482:19:170"},"referencedDeclaration":83290,"src":"33482:19:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84422,"initialValue":{"arguments":[{"expression":{"id":84419,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84397,"src":"33530:8:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33539:11:170","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83529,"src":"33530:20:170","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}],"id":84418,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84393,84434],"referencedDeclaration":84393,"src":"33523:6:170","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$83278_storage_ptr_$returns$_t_struct$_ValidatorsView_$83290_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33523:28:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"33482:69:170"},{"expression":{"arguments":[{"expression":{"id":84425,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84397,"src":"33630:8:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33639:18:170","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83521,"src":"33630:27:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":84427,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84397,"src":"33693:8:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33702:20:170","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83523,"src":"33693:29:170","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84429,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84407,"src":"33749:11:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":84430,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84417,"src":"33787:11:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$83290_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":84423,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"33568:4:170","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":84424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33573:22:170","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":83542,"src":"33568:27:170","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$83542_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":84431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["33610:18:170","33671:20:170","33736:11:170","33774:11:170"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"33568:241:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83542_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":84402,"id":84432,"nodeType":"Return","src":"33561:248:170"}]},"documentation":{"id":84394,"nodeType":"StructuredDocumentation","src":"32944:286:170","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":"33244:6:170","parameters":{"id":84398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84397,"mutability":"mutable","name":"settings","nameLocation":"33283:8:170","nodeType":"VariableDeclaration","scope":84434,"src":"33251:40:170","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":84396,"nodeType":"UserDefinedTypeName","pathNode":{"id":84395,"name":"Gear.ValidationSettings","nameLocations":["33251:4:170","33256:18:170"],"nodeType":"IdentifierPath","referencedDeclaration":83530,"src":"33251:23:170"},"referencedDeclaration":83530,"src":"33251:23:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"33250:42:170"},"returnParameters":{"id":84402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84401,"mutability":"mutable","name":"settingsView","nameLocation":"33375:12:170","nodeType":"VariableDeclaration","scope":84434,"src":"33340:47:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83542_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":84400,"nodeType":"UserDefinedTypeName","pathNode":{"id":84399,"name":"Gear.ValidationSettingsView","nameLocations":["33340:4:170","33345:22:170"],"nodeType":"IdentifierPath","referencedDeclaration":83542,"src":"33340:27:170"},"referencedDeclaration":83542,"src":"33340:27:170","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83542_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"33339:49:170"},"scope":84435,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":83204,"nodeType":"StructuredDocumentation","src":"744:770:170","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":[84435],"name":"Gear","nameLocation":"1523:4:170","scope":84436,"usedErrors":[83233,83236,83239,83242,83245,83248,83251],"usedEvents":[]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":170} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Middleware.json b/ethexe/ethereum/abi/Middleware.json index 03fdf7e8094..8981af2a1ee 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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5\",\"dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX\"]},\"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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3","urls":["bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5","dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX"],"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":77274,"exportedSymbols":{"EnumerableMap":[58543],"Gear":[84058],"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":[84346],"Middleware":[77273],"OwnableUpgradeable":[42322],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"Subnetwork":[64978],"Time":[60343],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:24130:160","nodes":[{"id":75003,"nodeType":"PragmaDirective","src":"74:24:160","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":75005,"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":77274,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":75004,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75007,"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":77274,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":75006,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75009,"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":77274,"sourceUnit":44540,"symbolAliases":[{"foreign":{"id":75008,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"351:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75011,"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":77274,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":75010,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"433:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75013,"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":77274,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":75012,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"522:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75015,"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":77274,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":75014,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"603:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75017,"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":77274,"sourceUnit":58544,"symbolAliases":[{"foreign":{"id":75016,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58543,"src":"678:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75019,"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":77274,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":75018,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"765:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75021,"nodeType":"ImportDirective","src":"824:48:160","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":77274,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":75020,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"832:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75023,"nodeType":"ImportDirective","src":"873:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":77274,"sourceUnit":84059,"symbolAliases":[{"foreign":{"id":75022,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"881:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75025,"nodeType":"ImportDirective","src":"918:66:160","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":77274,"sourceUnit":84347,"symbolAliases":[{"foreign":{"id":75024,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84346,"src":"926:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75027,"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":77274,"sourceUnit":64979,"symbolAliases":[{"foreign":{"id":75026,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64978,"src":"993:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75029,"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":77274,"sourceUnit":64999,"symbolAliases":[{"foreign":{"id":75028,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"1075:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75031,"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":77274,"sourceUnit":65101,"symbolAliases":[{"foreign":{"id":75030,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"1160:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75033,"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":77274,"sourceUnit":65209,"symbolAliases":[{"foreign":{"id":75032,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"1234:17:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75035,"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":77274,"sourceUnit":65333,"symbolAliases":[{"foreign":{"id":75034,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"1328:9:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75037,"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":77274,"sourceUnit":65507,"symbolAliases":[{"foreign":{"id":75036,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"1406:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75039,"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":77274,"sourceUnit":65995,"symbolAliases":[{"foreign":{"id":75038,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"1497:25:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75041,"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":77274,"sourceUnit":66121,"symbolAliases":[{"foreign":{"id":75040,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"1608:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75043,"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":77274,"sourceUnit":66519,"symbolAliases":[{"foreign":{"id":75042,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"1695:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75045,"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":77274,"sourceUnit":66857,"symbolAliases":[{"foreign":{"id":75044,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"1780:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75047,"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":77274,"sourceUnit":71799,"symbolAliases":[{"foreign":{"id":75046,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"1856:23:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75049,"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":77274,"sourceUnit":71993,"symbolAliases":[{"foreign":{"id":75048,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"1982:21:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77273,"nodeType":"ContractDefinition","src":"2376:21827:160","nodes":[{"id":75061,"nodeType":"UsingForDirective","src":"2491:55:160","nodes":[],"global":false,"libraryName":{"id":75058,"name":"EnumerableMap","nameLocations":["2497:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2497:13:160"},"typeName":{"id":75060,"nodeType":"UserDefinedTypeName","pathNode":{"id":75059,"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":75065,"nodeType":"UsingForDirective","src":"2551:57:160","nodes":[],"global":false,"libraryName":{"id":75062,"name":"MapWithTimeData","nameLocations":["2557:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":84346,"src":"2557:15:160"},"typeName":{"id":75064,"nodeType":"UserDefinedTypeName","pathNode":{"id":75063,"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":75069,"nodeType":"UsingForDirective","src":"2614:58:160","nodes":[],"global":false,"libraryName":{"id":75066,"name":"EnumerableMap","nameLocations":["2620:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2620:13:160"},"typeName":{"id":75068,"nodeType":"UserDefinedTypeName","pathNode":{"id":75067,"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":75072,"nodeType":"UsingForDirective","src":"2678:29:160","nodes":[],"global":false,"libraryName":{"id":75070,"name":"Subnetwork","nameLocations":["2684:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":64978,"src":"2684:10:160"},"typeName":{"id":75071,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75075,"nodeType":"VariableDeclaration","src":"2820:106:160","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2845:12:160","scope":77273,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2820:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":75074,"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":75078,"nodeType":"VariableDeclaration","src":"2933:50:160","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2958:18:160","scope":77273,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2933:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":75077,"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":75081,"nodeType":"VariableDeclaration","src":"2989:45:160","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3012:18:160","scope":77273,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":75079,"name":"uint8","nodeType":"ElementaryTypeName","src":"2989:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":75080,"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":75089,"nodeType":"FunctionDefinition","src":"3109:53:160","nodes":[],"body":{"id":75088,"nodeType":"Block","src":"3123:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75085,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"3133:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75086,"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":75087,"nodeType":"ExpressionStatement","src":"3133:22:160"}]},"documentation":{"id":75082,"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":75083,"nodeType":"ParameterList","parameters":[],"src":"3120:2:160"},"returnParameters":{"id":75084,"nodeType":"ParameterList","parameters":[],"src":"3123:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75243,"nodeType":"FunctionDefinition","src":"3168:1277:160","nodes":[],"body":{"id":75242,"nodeType":"Block","src":"3236:1209:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75098,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3261:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75099,"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":75097,"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":75100,"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":75101,"nodeType":"ExpressionStatement","src":"3246:29:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75102,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"3285:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75103,"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":75104,"nodeType":"ExpressionStatement","src":"3285:33:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":75106,"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":75105,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77242,"src":"3329:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75107,"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":75108,"nodeType":"ExpressionStatement","src":"3329:50:160"},{"assignments":[75111],"declarations":[{"constant":false,"id":75111,"mutability":"mutable","name":"$","nameLocation":"3405:1:160","nodeType":"VariableDeclaration","scope":75242,"src":"3389:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75110,"nodeType":"UserDefinedTypeName","pathNode":{"id":75109,"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":75114,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75112,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75113,"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":75120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75115,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"3430:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75117,"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":75118,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3446:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75119,"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":75121,"nodeType":"ExpressionStatement","src":"3430:35:160"},{"expression":{"id":75127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75122,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"3475:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75124,"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":75125,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3501:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75126,"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":75128,"nodeType":"ExpressionStatement","src":"3475:55:160"},{"expression":{"id":75134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75129,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"3540:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75131,"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":75132,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3564:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75133,"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":75135,"nodeType":"ExpressionStatement","src":"3540:51:160"},{"expression":{"id":75141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75136,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"3601:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75138,"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":75139,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3622:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75140,"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":75142,"nodeType":"ExpressionStatement","src":"3601:45:160"},{"expression":{"id":75148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75143,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"3656:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75145,"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":75146,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3676:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75147,"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":75149,"nodeType":"ExpressionStatement","src":"3656:43:160"},{"expression":{"id":75155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75150,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"3709:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75152,"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":75153,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3736:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75154,"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":75156,"nodeType":"ExpressionStatement","src":"3709:57:160"},{"expression":{"id":75162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75157,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"3776:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75159,"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":75160,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3806:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75161,"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":75163,"nodeType":"ExpressionStatement","src":"3776:63:160"},{"expression":{"id":75169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75164,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"3849:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75166,"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":75167,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75168,"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":75170,"nodeType":"ExpressionStatement","src":"3849:59:160"},{"expression":{"id":75176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75171,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"3918:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75173,"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":75174,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"3942:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75175,"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":75177,"nodeType":"ExpressionStatement","src":"3918:51:160"},{"expression":{"id":75183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75178,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"4002:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75180,"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":75181,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"4017:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75182,"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":75184,"nodeType":"ExpressionStatement","src":"4002:33:160"},{"expression":{"id":75195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75185,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"4045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75187,"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":75193,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"4085:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":75190,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4068:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77273","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77273","typeString":"contract Middleware"}],"id":75189,"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":75188,"name":"address","nodeType":"ElementaryTypeName","src":"4060:7:160","typeDescriptions":{}}},"id":75191,"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":75192,"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":75194,"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":75196,"nodeType":"ExpressionStatement","src":"4045:59:160"},{"expression":{"id":75202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75197,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"4114:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75199,"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":75200,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"4130:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75201,"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":75203,"nodeType":"ExpressionStatement","src":"4114:35:160"},{"expression":{"id":75209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75204,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"4160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75206,"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":75207,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"4171:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75208,"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":75210,"nodeType":"ExpressionStatement","src":"4160:25:160"},{"expression":{"id":75216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75211,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"src":"4196:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75213,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75214,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"4210:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75215,"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_$83195_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4196:31:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75217,"nodeType":"ExpressionStatement","src":"4196:31:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":75219,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"4255: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":"4263:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4255:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83195_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4273:15:160","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"4255:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75218,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"4238:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$64998_$","typeString":"type(contract INetworkRegistry)"}},"id":75222,"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":75223,"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":75224,"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":75225,"nodeType":"ExpressionStatement","src":"4238:69:160"},{"expression":{"arguments":[{"arguments":[{"id":75234,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4402:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77273","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77273","typeString":"contract Middleware"}],"id":75233,"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":75232,"name":"address","nodeType":"ElementaryTypeName","src":"4394:7:160","typeDescriptions":{}}},"id":75235,"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":75227,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75092,"src":"4343:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75228,"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_$83195_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:17:160","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":83182,"src":"4343:35:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75226,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"4317:25:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$65994_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":75230,"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":75231,"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":75236,"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":75237,"nodeType":"ExpressionStatement","src":"4317:91:160"},{"expression":{"arguments":[{"id":75239,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75111,"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":75238,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76822,"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":75240,"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":75241,"nodeType":"ExpressionStatement","src":"4419:19:160"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":75095,"kind":"modifierInvocation","modifierName":{"id":75094,"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":75093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75092,"mutability":"mutable","name":"_params","nameLocation":"3208:7:160","nodeType":"VariableDeclaration","scope":75243,"src":"3188:27:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":75091,"nodeType":"UserDefinedTypeName","pathNode":{"id":75090,"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":75096,"nodeType":"ParameterList","parameters":[],"src":"3236:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75440,"nodeType":"FunctionDefinition","src":"4518:1578:160","nodes":[],"body":{"id":75439,"nodeType":"Block","src":"4576:1520:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75253,"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":75254,"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":75252,"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":75255,"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":75256,"nodeType":"ExpressionStatement","src":"4586:23:160"},{"assignments":[75259],"declarations":[{"constant":false,"id":75259,"mutability":"mutable","name":"oldStorage","nameLocation":"4636:10:160","nodeType":"VariableDeclaration","scope":75439,"src":"4620:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75258,"nodeType":"UserDefinedTypeName","pathNode":{"id":75257,"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":75262,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75260,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75261,"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":75264,"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":75263,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77242,"src":"4670:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75265,"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":75266,"nodeType":"ExpressionStatement","src":"4670:50:160"},{"assignments":[75269],"declarations":[{"constant":false,"id":75269,"mutability":"mutable","name":"newStorage","nameLocation":"4746:10:160","nodeType":"VariableDeclaration","scope":75439,"src":"4730:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75268,"nodeType":"UserDefinedTypeName","pathNode":{"id":75267,"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":75272,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75270,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75271,"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":75278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75273,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"4780:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75275,"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":75276,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"4805:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75277,"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":75279,"nodeType":"ExpressionStatement","src":"4780:47:160"},{"expression":{"id":75285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75280,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"4837: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":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":75283,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"4872:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75284,"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":75286,"nodeType":"ExpressionStatement","src":"4837:67:160"},{"expression":{"id":75292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75287,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"4914: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":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":75290,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"4947:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75291,"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":75293,"nodeType":"ExpressionStatement","src":"4914:63:160"},{"expression":{"id":75299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75294,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"4987: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":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":75297,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5017: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":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":75300,"nodeType":"ExpressionStatement","src":"4987:57:160"},{"expression":{"id":75306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75301,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5054: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":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":75304,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5083: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":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":75307,"nodeType":"ExpressionStatement","src":"5054:55:160"},{"expression":{"id":75313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75308,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5119: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":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":75311,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5155: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":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":75314,"nodeType":"ExpressionStatement","src":"5119:69:160"},{"expression":{"id":75320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75315,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5198: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":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":75318,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5237: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":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":75321,"nodeType":"ExpressionStatement","src":"5198:75:160"},{"expression":{"id":75327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75322,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5283: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":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":75325,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5320: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":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":75328,"nodeType":"ExpressionStatement","src":"5283:71:160"},{"expression":{"id":75334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75329,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5364: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":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":75332,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5397: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":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":75335,"nodeType":"ExpressionStatement","src":"5364:63:160"},{"expression":{"id":75341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75336,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5437: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":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":75339,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5461: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":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":75342,"nodeType":"ExpressionStatement","src":"5437:45:160"},{"expression":{"id":75348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75343,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5492: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":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":75346,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5516: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":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":75349,"nodeType":"ExpressionStatement","src":"5492:45:160"},{"expression":{"id":75355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75350,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5547: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":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":75353,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5572: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":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":75356,"nodeType":"ExpressionStatement","src":"5547:47:160"},{"expression":{"id":75362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75357,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5604: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":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":75360,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5624: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":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":75363,"nodeType":"ExpressionStatement","src":"5604:37:160"},{"expression":{"id":75369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75364,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5651: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":true,"memberLocation":"5662:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5651:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75367,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5674: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":false,"memberLocation":"5685:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5674:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5651:43:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75370,"nodeType":"ExpressionStatement","src":"5651:43:160"},{"body":{"id":75403,"nodeType":"Block","src":"5765:132:160","statements":[{"assignments":[75385,75387],"declarations":[{"constant":false,"id":75385,"mutability":"mutable","name":"key","nameLocation":"5788:3:160","nodeType":"VariableDeclaration","scope":75403,"src":"5780:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75384,"name":"address","nodeType":"ElementaryTypeName","src":"5780:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75387,"mutability":"mutable","name":"value","nameLocation":"5801:5:160","nodeType":"VariableDeclaration","scope":75403,"src":"5793:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75386,"name":"uint256","nodeType":"ElementaryTypeName","src":"5793:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75393,"initialValue":{"arguments":[{"id":75391,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75372,"src":"5834:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75388,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5810: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":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":75390,"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":75392,"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":75399,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75385,"src":"5875:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75400,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75387,"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":75394,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5850:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75397,"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":75398,"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":75401,"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":75402,"nodeType":"ExpressionStatement","src":"5850:36:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75372,"src":"5725:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75376,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5729: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":"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":75378,"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":75379,"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":75404,"initializationExpression":{"assignments":[75372],"declarations":[{"constant":false,"id":75372,"mutability":"mutable","name":"i","nameLocation":"5718:1:160","nodeType":"VariableDeclaration","scope":75404,"src":"5710:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75371,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75374,"initialValue":{"hexValue":"30","id":75373,"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":75382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5760:3:160","subExpression":{"id":75381,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75372,"src":"5760:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75383,"nodeType":"ExpressionStatement","src":"5760:3:160"},"nodeType":"ForStatement","src":"5705:192:160"},{"body":{"id":75437,"nodeType":"Block","src":"5964:126:160","statements":[{"assignments":[75419,75421],"declarations":[{"constant":false,"id":75419,"mutability":"mutable","name":"key","nameLocation":"5987:3:160","nodeType":"VariableDeclaration","scope":75437,"src":"5979:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75418,"name":"address","nodeType":"ElementaryTypeName","src":"5979:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75421,"mutability":"mutable","name":"value","nameLocation":"6000:5:160","nodeType":"VariableDeclaration","scope":75437,"src":"5992:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75420,"name":"uint256","nodeType":"ElementaryTypeName","src":"5992:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75427,"initialValue":{"arguments":[{"id":75425,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75406,"src":"6030:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75422,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"6009:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75423,"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":75424,"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":75426,"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":75433,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"6068:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75434,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75421,"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":75428,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"6046:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75431,"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":75432,"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":75435,"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":75436,"nodeType":"ExpressionStatement","src":"6046:33:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75409,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75406,"src":"5927:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75410,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75259,"src":"5931:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75411,"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":75412,"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":75413,"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":75438,"initializationExpression":{"assignments":[75406],"declarations":[{"constant":false,"id":75406,"mutability":"mutable","name":"i","nameLocation":"5920:1:160","nodeType":"VariableDeclaration","scope":75438,"src":"5912:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75405,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75408,"initialValue":{"hexValue":"30","id":75407,"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":75416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5959:3:160","subExpression":{"id":75415,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75406,"src":"5959:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75417,"nodeType":"ExpressionStatement","src":"5959:3:160"},"nodeType":"ForStatement","src":"5907:183:160"}]},"documentation":{"id":75244,"nodeType":"StructuredDocumentation","src":"4451:62:160","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75247,"kind":"modifierInvocation","modifierName":{"id":75246,"name":"onlyOwner","nameLocations":["4549:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"4549:9:160"},"nodeType":"ModifierInvocation","src":"4549:9:160"},{"arguments":[{"hexValue":"32","id":75249,"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":75250,"kind":"modifierInvocation","modifierName":{"id":75248,"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":75245,"nodeType":"ParameterList","parameters":[],"src":"4539:2:160"},"returnParameters":{"id":75251,"nodeType":"ParameterList","parameters":[],"src":"4576:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75450,"nodeType":"FunctionDefinition","src":"6261:84:160","nodes":[],"body":{"id":75449,"nodeType":"Block","src":"6343:2:160","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":75441,"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":75447,"kind":"modifierInvocation","modifierName":{"id":75446,"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":75445,"nodeType":"OverrideSpecifier","overrides":[],"src":"6324:8:160"},"parameters":{"id":75444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75443,"mutability":"mutable","name":"newImplementation","nameLocation":"6296:17:160","nodeType":"VariableDeclaration","scope":75450,"src":"6288:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75442,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6287:27:160"},"returnParameters":{"id":75448,"nodeType":"ParameterList","parameters":[],"src":"6343:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75460,"nodeType":"FunctionDefinition","src":"6370:98:160","nodes":[],"body":{"id":75459,"nodeType":"Block","src":"6422:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75455,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75456,"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":75457,"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":75454,"id":75458,"nodeType":"Return","src":"6432:29:160"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6379:11:160","parameters":{"id":75451,"nodeType":"ParameterList","parameters":[],"src":"6390:2:160"},"returnParameters":{"id":75454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75460,"src":"6414:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75452,"name":"uint48","nodeType":"ElementaryTypeName","src":"6414:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6413:8:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75470,"nodeType":"FunctionDefinition","src":"6474:118:160","nodes":[],"body":{"id":75469,"nodeType":"Block","src":"6536:56:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75465,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75466,"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":75467,"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":75464,"id":75468,"nodeType":"Return","src":"6546:39:160"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6483:21:160","parameters":{"id":75461,"nodeType":"ParameterList","parameters":[],"src":"6504:2:160"},"returnParameters":{"id":75464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75470,"src":"6528:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75462,"name":"uint48","nodeType":"ElementaryTypeName","src":"6528:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6527:8:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75480,"nodeType":"FunctionDefinition","src":"6598:116:160","nodes":[],"body":{"id":75479,"nodeType":"Block","src":"6660:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75475,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75476,"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":75477,"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":75474,"id":75478,"nodeType":"Return","src":"6670:37:160"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6607:19:160","parameters":{"id":75471,"nodeType":"ParameterList","parameters":[],"src":"6626:2:160"},"returnParameters":{"id":75474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75480,"src":"6652:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75472,"name":"uint48","nodeType":"ElementaryTypeName","src":"6652:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6651:8:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75490,"nodeType":"FunctionDefinition","src":"6720:110:160","nodes":[],"body":{"id":75489,"nodeType":"Block","src":"6779:51:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75485,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75486,"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":75487,"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":75484,"id":75488,"nodeType":"Return","src":"6789:34:160"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6729:16:160","parameters":{"id":75481,"nodeType":"ParameterList","parameters":[],"src":"6745:2:160"},"returnParameters":{"id":75484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75490,"src":"6771:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75482,"name":"uint48","nodeType":"ElementaryTypeName","src":"6771:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6770:8:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75500,"nodeType":"FunctionDefinition","src":"6836:108:160","nodes":[],"body":{"id":75499,"nodeType":"Block","src":"6894:50:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75495,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75496,"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":75497,"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":75494,"id":75498,"nodeType":"Return","src":"6904:33:160"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6845:15:160","parameters":{"id":75491,"nodeType":"ParameterList","parameters":[],"src":"6860:2:160"},"returnParameters":{"id":75494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75500,"src":"6886:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75492,"name":"uint48","nodeType":"ElementaryTypeName","src":"6886:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6885:8:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75510,"nodeType":"FunctionDefinition","src":"6950:122:160","nodes":[],"body":{"id":75509,"nodeType":"Block","src":"7015:57:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75505,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75506,"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":75507,"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":75504,"id":75508,"nodeType":"Return","src":"7025:40:160"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6959:22:160","parameters":{"id":75501,"nodeType":"ParameterList","parameters":[],"src":"6981:2:160"},"returnParameters":{"id":75504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75510,"src":"7007:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75502,"name":"uint48","nodeType":"ElementaryTypeName","src":"7007:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7006:8:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75520,"nodeType":"FunctionDefinition","src":"7078:129:160","nodes":[],"body":{"id":75519,"nodeType":"Block","src":"7147:60:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75515,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75516,"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":75517,"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":75514,"id":75518,"nodeType":"Return","src":"7157:43:160"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7087:25:160","parameters":{"id":75511,"nodeType":"ParameterList","parameters":[],"src":"7112:2:160"},"returnParameters":{"id":75514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75520,"src":"7138:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75512,"name":"uint256","nodeType":"ElementaryTypeName","src":"7138:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7137:9:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75530,"nodeType":"FunctionDefinition","src":"7213:124:160","nodes":[],"body":{"id":75529,"nodeType":"Block","src":"7279:58:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75525,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75526,"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":75527,"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":75524,"id":75528,"nodeType":"Return","src":"7289:41:160"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7222:23:160","parameters":{"id":75521,"nodeType":"ParameterList","parameters":[],"src":"7245:2:160"},"returnParameters":{"id":75524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75530,"src":"7271:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75522,"name":"uint64","nodeType":"ElementaryTypeName","src":"7271:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7270:8:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75540,"nodeType":"FunctionDefinition","src":"7343:116:160","nodes":[],"body":{"id":75539,"nodeType":"Block","src":"7405:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75535,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75536,"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":75537,"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":75534,"id":75538,"nodeType":"Return","src":"7415:37:160"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7352:19:160","parameters":{"id":75531,"nodeType":"ParameterList","parameters":[],"src":"7371:2:160"},"returnParameters":{"id":75534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75540,"src":"7397:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75532,"name":"uint64","nodeType":"ElementaryTypeName","src":"7397:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7396:8:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75550,"nodeType":"FunctionDefinition","src":"7465:99:160","nodes":[],"body":{"id":75549,"nodeType":"Block","src":"7519:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75545,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75546,"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":75547,"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":75544,"id":75548,"nodeType":"Return","src":"7529:28:160"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7474:10:160","parameters":{"id":75541,"nodeType":"ParameterList","parameters":[],"src":"7484:2:160"},"returnParameters":{"id":75544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75550,"src":"7510:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75542,"name":"address","nodeType":"ElementaryTypeName","src":"7510:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7509:9:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75560,"nodeType":"FunctionDefinition","src":"7570:99:160","nodes":[],"body":{"id":75559,"nodeType":"Block","src":"7624:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75555,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75556,"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":75557,"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":75554,"id":75558,"nodeType":"Return","src":"7634:28:160"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7579:10:160","parameters":{"id":75551,"nodeType":"ParameterList","parameters":[],"src":"7589:2:160"},"returnParameters":{"id":75554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75560,"src":"7615:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7615:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7614:9:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75570,"nodeType":"FunctionDefinition","src":"7675:101:160","nodes":[],"body":{"id":75569,"nodeType":"Block","src":"7730:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75565,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75566,"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":75567,"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":75564,"id":75568,"nodeType":"Return","src":"7740:29:160"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7684:11:160","parameters":{"id":75561,"nodeType":"ParameterList","parameters":[],"src":"7695:2:160"},"returnParameters":{"id":75564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75570,"src":"7721:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75562,"name":"uint256","nodeType":"ElementaryTypeName","src":"7721:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7720:9:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75580,"nodeType":"FunctionDefinition","src":"7782:91:160","nodes":[],"body":{"id":75579,"nodeType":"Block","src":"7832:41:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75575,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75576,"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":75577,"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":75574,"id":75578,"nodeType":"Return","src":"7842:24:160"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7791:6:160","parameters":{"id":75571,"nodeType":"ParameterList","parameters":[],"src":"7797:2:160"},"returnParameters":{"id":75574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75580,"src":"7823:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75572,"name":"address","nodeType":"ElementaryTypeName","src":"7823:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7822:9:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75591,"nodeType":"FunctionDefinition","src":"7879:129:160","nodes":[],"body":{"id":75590,"nodeType":"Block","src":"7964:44:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75586,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75587,"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":75588,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":75585,"id":75589,"nodeType":"Return","src":"7974:27:160"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7888:18:160","parameters":{"id":75581,"nodeType":"ParameterList","parameters":[],"src":"7906:2:160"},"returnParameters":{"id":75585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75591,"src":"7932:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83195_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":75583,"nodeType":"UserDefinedTypeName","pathNode":{"id":75582,"name":"Gear.SymbioticContracts","nameLocations":["7932:4:160","7937:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":83195,"src":"7932:23:160"},"referencedDeclaration":83195,"src":"7932:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83195_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7931:32:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75622,"nodeType":"FunctionDefinition","src":"8033:263:160","nodes":[],"body":{"id":75621,"nodeType":"Block","src":"8089:207:160","nodes":[],"statements":[{"assignments":[75598],"declarations":[{"constant":false,"id":75598,"mutability":"mutable","name":"$","nameLocation":"8115:1:160","nodeType":"VariableDeclaration","scope":75621,"src":"8099:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75597,"nodeType":"UserDefinedTypeName","pathNode":{"id":75596,"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":75601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75599,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75600,"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":75607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75602,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8143:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75603,"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":75604,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75598,"src":"8157:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75605,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8169:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83190,"src":"8157:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8143:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75612,"nodeType":"IfStatement","src":"8139:101:160","trueBody":{"id":75611,"nodeType":"Block","src":"8189:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75608,"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":75609,"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":75610,"nodeType":"RevertStatement","src":"8203:26:160"}]}},{"expression":{"id":75619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75613,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75598,"src":"8249:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75616,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8261:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83190,"src":"8249:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75618,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75593,"src":"8282:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8249:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75620,"nodeType":"ExpressionStatement","src":"8249:40:160"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"8042:20:160","parameters":{"id":75594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75593,"mutability":"mutable","name":"newRole","nameLocation":"8071:7:160","nodeType":"VariableDeclaration","scope":75622,"src":"8063:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75592,"name":"address","nodeType":"ElementaryTypeName","src":"8063:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8062:17:160"},"returnParameters":{"id":75595,"nodeType":"ParameterList","parameters":[],"src":"8089:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75653,"nodeType":"FunctionDefinition","src":"8302:259:160","nodes":[],"body":{"id":75652,"nodeType":"Block","src":"8357:204:160","nodes":[],"statements":[{"assignments":[75629],"declarations":[{"constant":false,"id":75629,"mutability":"mutable","name":"$","nameLocation":"8383:1:160","nodeType":"VariableDeclaration","scope":75652,"src":"8367:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75628,"nodeType":"UserDefinedTypeName","pathNode":{"id":75627,"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":75632,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75630,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75631,"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":75638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75633,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8411:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75634,"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":75635,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"8425:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75636,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8437:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83192,"src":"8425:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8411:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75643,"nodeType":"IfStatement","src":"8407:99:160","trueBody":{"id":75642,"nodeType":"Block","src":"8456:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75639,"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":75640,"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":75641,"nodeType":"RevertStatement","src":"8470:25:160"}]}},{"expression":{"id":75650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75644,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"8515:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75647,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8527:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83192,"src":"8515:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75649,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75624,"src":"8547:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8515:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75651,"nodeType":"ExpressionStatement","src":"8515:39:160"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8311:19:160","parameters":{"id":75625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75624,"mutability":"mutable","name":"newRole","nameLocation":"8339:7:160","nodeType":"VariableDeclaration","scope":75653,"src":"8331:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75623,"name":"address","nodeType":"ElementaryTypeName","src":"8331:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8330:17:160"},"returnParameters":{"id":75626,"nodeType":"ParameterList","parameters":[],"src":"8357:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75707,"nodeType":"FunctionDefinition","src":"8617:405:160","nodes":[],"body":{"id":75706,"nodeType":"Block","src":"8654:368:160","nodes":[],"statements":[{"assignments":[75658],"declarations":[{"constant":false,"id":75658,"mutability":"mutable","name":"$","nameLocation":"8680:1:160","nodeType":"VariableDeclaration","scope":75706,"src":"8664:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75657,"nodeType":"UserDefinedTypeName","pathNode":{"id":75656,"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":75661,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75659,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75660,"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":75671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8709:61:160","subExpression":{"arguments":[{"expression":{"id":75668,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8759:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75669,"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":75663,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75658,"src":"8720:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75664,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:16:160","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"8720:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75662,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"8710:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":75666,"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":75667,"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":75670,"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":75676,"nodeType":"IfStatement","src":"8705:121:160","trueBody":{"id":75675,"nodeType":"Block","src":"8772:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75672,"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":75673,"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":75674,"nodeType":"RevertStatement","src":"8786:29:160"}]}},{"condition":{"id":75690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8839:77:160","subExpression":{"arguments":[{"expression":{"id":75683,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8890:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75684,"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":75687,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8910:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77273","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77273","typeString":"contract Middleware"}],"id":75686,"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":75685,"name":"address","nodeType":"ElementaryTypeName","src":"8902:7:160","typeDescriptions":{}}},"id":75688,"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":75678,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75658,"src":"8854:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75679,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8866:12:160","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":83184,"src":"8854:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75677,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"8840:13:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$66120_$","typeString":"type(contract IOptInService)"}},"id":75681,"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":75682,"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":75689,"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":75695,"nodeType":"IfStatement","src":"8835:137:160","trueBody":{"id":75694,"nodeType":"Block","src":"8918:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75691,"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":75692,"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":75693,"nodeType":"RevertStatement","src":"8932:29:160"}]}},{"expression":{"arguments":[{"expression":{"id":75701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9001:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75702,"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":75703,"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":75696,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75658,"src":"8982:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75699,"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":75700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8994:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84171,"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":75704,"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":75705,"nodeType":"ExpressionStatement","src":"8982:33:160"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8626:16:160","parameters":{"id":75654,"nodeType":"ParameterList","parameters":[],"src":"8642:2:160"},"returnParameters":{"id":75655,"nodeType":"ParameterList","parameters":[],"src":"8654:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75719,"nodeType":"FunctionDefinition","src":"9028:93:160","nodes":[],"body":{"id":75718,"nodeType":"Block","src":"9064:57:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75714,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9103:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75715,"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":75710,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75711,"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":75712,"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":75713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9095:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84265,"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":75716,"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":75717,"nodeType":"ExpressionStatement","src":"9074:40:160"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"9037:15:160","parameters":{"id":75708,"nodeType":"ParameterList","parameters":[],"src":"9052:2:160"},"returnParameters":{"id":75709,"nodeType":"ParameterList","parameters":[],"src":"9064:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75731,"nodeType":"FunctionDefinition","src":"9127:91:160","nodes":[],"body":{"id":75730,"nodeType":"Block","src":"9162:56:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75726,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9200:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75727,"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":75722,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75723,"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":75724,"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":75725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9193:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84218,"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":75728,"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":75729,"nodeType":"ExpressionStatement","src":"9172:39:160"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9136:14:160","parameters":{"id":75720,"nodeType":"ParameterList","parameters":[],"src":"9150:2:160"},"returnParameters":{"id":75721,"nodeType":"ParameterList","parameters":[],"src":"9162:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75776,"nodeType":"FunctionDefinition","src":"9224:362:160","nodes":[],"body":{"id":75775,"nodeType":"Block","src":"9279:307:160","nodes":[],"statements":[{"assignments":[75738],"declarations":[{"constant":false,"id":75738,"mutability":"mutable","name":"$","nameLocation":"9305:1:160","nodeType":"VariableDeclaration","scope":75775,"src":"9289:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75737,"nodeType":"UserDefinedTypeName","pathNode":{"id":75736,"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":75741,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75739,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75740,"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,75743],"declarations":[null,{"constant":false,"id":75743,"mutability":"mutable","name":"disabledTime","nameLocation":"9340:12:160","nodeType":"VariableDeclaration","scope":75775,"src":"9333:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75742,"name":"uint48","nodeType":"ElementaryTypeName","src":"9333:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75749,"initialValue":{"arguments":[{"id":75747,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75733,"src":"9377:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75744,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"9356:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75745,"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":75746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9368:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84324,"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":75748,"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":75761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75750,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9401:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75751,"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":75760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75753,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"9422:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":75754,"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":75755,"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":75759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75756,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9441:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75757,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"9456:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75758,"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":75766,"nodeType":"IfStatement","src":"9397:144:160","trueBody":{"id":75765,"nodeType":"Block","src":"9479:62:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75762,"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":75763,"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":75764,"nodeType":"RevertStatement","src":"9493:37:160"}]}},{"expression":{"arguments":[{"id":75772,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75733,"src":"9570:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75767,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"9551:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75770,"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":75771,"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":75773,"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":75774,"nodeType":"ExpressionStatement","src":"9551:28:160"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9233:18:160","parameters":{"id":75734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75733,"mutability":"mutable","name":"operator","nameLocation":"9260:8:160","nodeType":"VariableDeclaration","scope":75776,"src":"9252:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75732,"name":"address","nodeType":"ElementaryTypeName","src":"9252:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9251:18:160"},"returnParameters":{"id":75735,"nodeType":"ParameterList","parameters":[],"src":"9279:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75834,"nodeType":"FunctionDefinition","src":"9592:494:160","nodes":[],"body":{"id":75833,"nodeType":"Block","src":"9699:387:160","nodes":[],"statements":[{"assignments":[75789],"declarations":[{"constant":false,"id":75789,"mutability":"mutable","name":"$","nameLocation":"9725:1:160","nodeType":"VariableDeclaration","scope":75833,"src":"9709:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75788,"nodeType":"UserDefinedTypeName","pathNode":{"id":75787,"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":75792,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75790,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75791,"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":75797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75793,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9754:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75794,"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":75795,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75789,"src":"9768:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75796,"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":75802,"nodeType":"IfStatement","src":"9750:71:160","trueBody":{"id":75801,"nodeType":"Block","src":"9778:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75798,"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":75799,"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":75800,"nodeType":"RevertStatement","src":"9792:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75803,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75778,"src":"9835:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75804,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75789,"src":"9844:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75805,"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":75811,"nodeType":"IfStatement","src":"9831:78:160","trueBody":{"id":75810,"nodeType":"Block","src":"9858:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75807,"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":75808,"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":75809,"nodeType":"RevertStatement","src":"9872:26:160"}]}},{"expression":{"arguments":[{"expression":{"id":75818,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75789,"src":"9990: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":"9992:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9990:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75820,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75778,"src":"10000:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75780,"src":"10007:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75822,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75782,"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":75813,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75789,"src":"9943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75814,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9955:15:160","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":83188,"src":"9943:27:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75812,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"9919:23:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$71798_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":75816,"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":75817,"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":75823,"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":75824,"nodeType":"ExpressionStatement","src":"9919:101:160"},{"expression":{"arguments":[{"arguments":[{"id":75828,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75780,"src":"10065:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75829,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75782,"src":"10073:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10048:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75827,"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":75830,"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":75825,"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":75831,"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":75786,"id":75832,"nodeType":"Return","src":"10031:48:160"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9601:25:160","parameters":{"id":75783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75778,"mutability":"mutable","name":"token","nameLocation":"9635:5:160","nodeType":"VariableDeclaration","scope":75834,"src":"9627:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75777,"name":"address","nodeType":"ElementaryTypeName","src":"9627:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75780,"mutability":"mutable","name":"amount","nameLocation":"9650:6:160","nodeType":"VariableDeclaration","scope":75834,"src":"9642:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75779,"name":"uint256","nodeType":"ElementaryTypeName","src":"9642:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75782,"mutability":"mutable","name":"root","nameLocation":"9666:4:160","nodeType":"VariableDeclaration","scope":75834,"src":"9658:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9658:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9626:45:160"},"returnParameters":{"id":75786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75834,"src":"9690:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9690:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9689:9:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75982,"nodeType":"FunctionDefinition","src":"10092:1224:160","nodes":[],"body":{"id":75981,"nodeType":"Block","src":"10239:1077:160","nodes":[],"statements":[{"assignments":[75846],"declarations":[{"constant":false,"id":75846,"mutability":"mutable","name":"$","nameLocation":"10265:1:160","nodeType":"VariableDeclaration","scope":75981,"src":"10249:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75845,"nodeType":"UserDefinedTypeName","pathNode":{"id":75844,"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":75849,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75847,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":75848,"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":75854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75850,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10294:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75851,"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":75852,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75846,"src":"10308:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75853,"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":75859,"nodeType":"IfStatement","src":"10290:71:160","trueBody":{"id":75858,"nodeType":"Block","src":"10318:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75855,"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":75856,"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":75857,"nodeType":"RevertStatement","src":"10332:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75860,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"10375:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10387:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83011,"src":"10375:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75862,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75846,"src":"10396:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75863,"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":75869,"nodeType":"IfStatement","src":"10371:90:160","trueBody":{"id":75868,"nodeType":"Block","src":"10410:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75865,"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":75866,"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":75867,"nodeType":"RevertStatement","src":"10424:26:160"}]}},{"assignments":[75871],"declarations":[{"constant":false,"id":75871,"mutability":"mutable","name":"distributionBytes","nameLocation":"10484:17:160","nodeType":"VariableDeclaration","scope":75981,"src":"10471:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75870,"name":"bytes","nodeType":"ElementaryTypeName","src":"10471:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75872,"nodeType":"VariableDeclarationStatement","src":"10471:30:160"},{"body":{"id":75964,"nodeType":"Block","src":"10573:615:160","statements":[{"assignments":[75889],"declarations":[{"constant":false,"id":75889,"mutability":"mutable","name":"rewards","nameLocation":"10613:7:160","nodeType":"VariableDeclaration","scope":75964,"src":"10587:33:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83018_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":75888,"nodeType":"UserDefinedTypeName","pathNode":{"id":75887,"name":"Gear.StakerRewards","nameLocations":["10587:4:160","10592:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":83018,"src":"10587:18:160"},"referencedDeclaration":83018,"src":"10587:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83018_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":75894,"initialValue":{"baseExpression":{"expression":{"id":75890,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"10623:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10635:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83007,"src":"10623:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83018_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75893,"indexExpression":{"id":75892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75874,"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_$83018_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10587:63:160"},{"condition":{"id":75901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10669:33:160","subExpression":{"arguments":[{"expression":{"id":75898,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75889,"src":"10688:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83018_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10696:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83015,"src":"10688:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75895,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75846,"src":"10670:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75896,"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":75897,"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":75900,"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":75906,"nodeType":"IfStatement","src":"10665:99:160","trueBody":{"id":75905,"nodeType":"Block","src":"10704:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75902,"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":75903,"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":75904,"nodeType":"RevertStatement","src":"10722:27:160"}]}},{"assignments":[75908],"declarations":[{"constant":false,"id":75908,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10786:14:160","nodeType":"VariableDeclaration","scope":75964,"src":"10778:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75907,"name":"address","nodeType":"ElementaryTypeName","src":"10778:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75918,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":75914,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75889,"src":"10834:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83018_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10842:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83015,"src":"10834:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75911,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75846,"src":"10811:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75912,"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":75913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10820:13:160","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":84345,"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":75916,"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":75910,"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":75909,"name":"address","nodeType":"ElementaryTypeName","src":"10803:7:160","typeDescriptions":{}}},"id":75917,"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":[75920],"declarations":[{"constant":false,"id":75920,"mutability":"mutable","name":"data","nameLocation":"10877:4:160","nodeType":"VariableDeclaration","scope":75964,"src":"10864:17:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75919,"name":"bytes","nodeType":"ElementaryTypeName","src":"10864:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75935,"initialValue":{"arguments":[{"id":75923,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75839,"src":"10895:9:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":75924,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75846,"src":"10906:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75925,"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":75928,"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":75927,"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":75926,"name":"bytes","nodeType":"ElementaryTypeName","src":"10921:5:160","typeDescriptions":{}}},"id":75929,"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":75932,"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":75931,"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":75930,"name":"bytes","nodeType":"ElementaryTypeName","src":"10932:5:160","typeDescriptions":{}}},"id":75933,"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":75921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10884:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75922,"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":75934,"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":75940,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75846,"src":"11012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75941,"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":75942,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"11022:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11034:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83011,"src":"11022:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75944,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75889,"src":"11041:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83018_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11049:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83017,"src":"11041:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75946,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75920,"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":75937,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75908,"src":"10978:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75936,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"10956:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":75938,"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":75939,"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":75947,"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":75948,"nodeType":"ExpressionStatement","src":"10956:106:160"},{"expression":{"id":75962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75949,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75871,"src":"11077:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75953,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75871,"src":"11110:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75956,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75889,"src":"11146:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83018_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11154:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83015,"src":"11146:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75958,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75889,"src":"11161:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83018_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11169:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83017,"src":"11161:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75954,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11129:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75955,"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":75960,"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":75951,"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":75950,"name":"bytes","nodeType":"ElementaryTypeName","src":"11097:5:160","typeDescriptions":{}}},"id":75952,"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":75961,"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":75963,"nodeType":"ExpressionStatement","src":"11077:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75877,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75874,"src":"10531:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":75878,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"10535:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10547:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83007,"src":"10535:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83018_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75880,"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":75965,"initializationExpression":{"assignments":[75874],"declarations":[{"constant":false,"id":75874,"mutability":"mutable","name":"i","nameLocation":"10524:1:160","nodeType":"VariableDeclaration","scope":75965,"src":"10516:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75873,"name":"uint256","nodeType":"ElementaryTypeName","src":"10516:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75876,"initialValue":{"hexValue":"30","id":75875,"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":75883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10568:3:160","subExpression":{"id":75882,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75874,"src":"10570:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75884,"nodeType":"ExpressionStatement","src":"10568:3:160"},"nodeType":"ForStatement","src":"10511:677:160"},{"expression":{"arguments":[{"arguments":[{"id":75970,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75871,"src":"11228:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75973,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"11264:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11276:11:160","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83009,"src":"11264:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75975,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"11289:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11301:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83011,"src":"11289:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":75971,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11247:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75972,"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":75977,"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":75968,"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":75967,"name":"bytes","nodeType":"ElementaryTypeName","src":"11215:5:160","typeDescriptions":{}}},"id":75969,"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":75978,"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":75966,"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":75979,"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":75843,"id":75980,"nodeType":"Return","src":"11198:111:160"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10101:23:160","parameters":{"id":75840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75837,"mutability":"mutable","name":"_commitment","nameLocation":"10161:11:160","nodeType":"VariableDeclaration","scope":75982,"src":"10125:47:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":75836,"nodeType":"UserDefinedTypeName","pathNode":{"id":75835,"name":"Gear.StakerRewardsCommitment","nameLocations":["10125:4:160","10130:23:160"],"nodeType":"IdentifierPath","referencedDeclaration":83012,"src":"10125:28:160"},"referencedDeclaration":83012,"src":"10125:28:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":75839,"mutability":"mutable","name":"timestamp","nameLocation":"10181:9:160","nodeType":"VariableDeclaration","scope":75982,"src":"10174:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75838,"name":"uint48","nodeType":"ElementaryTypeName","src":"10174:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10124:67:160"},"returnParameters":{"id":75843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75982,"src":"10226:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75841,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10226:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10225:9:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76013,"nodeType":"FunctionDefinition","src":"11322:236:160","nodes":[],"body":{"id":76012,"nodeType":"Block","src":"11407:151:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75993,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75984,"src":"11432:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75992,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"11417:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75994,"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":75995,"nodeType":"ExpressionStatement","src":"11417:22:160"},{"expression":{"arguments":[{"id":75997,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75984,"src":"11472:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75998,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75986,"src":"11480:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":75996,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"11449:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":75999,"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":76000,"nodeType":"ExpressionStatement","src":"11449:40:160"},{"expression":{"arguments":[{"id":76005,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75984,"src":"11525:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76008,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75986,"src":"11541:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76007,"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":76006,"name":"uint160","nodeType":"ElementaryTypeName","src":"11533:7:160","typeDescriptions":{}}},"id":76009,"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":76001,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76002,"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":76003,"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":76004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11518:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84171,"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":76010,"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":76011,"nodeType":"ExpressionStatement","src":"11500:51:160"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75989,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75984,"src":"11399:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75990,"kind":"modifierInvocation","modifierName":{"id":75988,"name":"vaultOwner","nameLocations":["11388:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77252,"src":"11388:10:160"},"nodeType":"ModifierInvocation","src":"11388:18:160"}],"name":"registerVault","nameLocation":"11331:13:160","parameters":{"id":75987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75984,"mutability":"mutable","name":"_vault","nameLocation":"11353:6:160","nodeType":"VariableDeclaration","scope":76013,"src":"11345:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75983,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75986,"mutability":"mutable","name":"_rewards","nameLocation":"11369:8:160","nodeType":"VariableDeclaration","scope":76013,"src":"11361:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75985,"name":"address","nodeType":"ElementaryTypeName","src":"11361:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11344:34:160"},"returnParameters":{"id":75991,"nodeType":"ParameterList","parameters":[],"src":"11407:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76029,"nodeType":"FunctionDefinition","src":"11564:113:160","nodes":[],"body":{"id":76028,"nodeType":"Block","src":"11628:49:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76025,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76015,"src":"11664:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76021,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76022,"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":76023,"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":76024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11656:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84265,"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":76026,"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":76027,"nodeType":"ExpressionStatement","src":"11638:32:160"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76018,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76015,"src":"11621:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76019,"kind":"modifierInvocation","modifierName":{"id":76017,"name":"vaultOwner","nameLocations":["11610:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77252,"src":"11610:10:160"},"nodeType":"ModifierInvocation","src":"11610:17:160"}],"name":"disableVault","nameLocation":"11573:12:160","parameters":{"id":76016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76015,"mutability":"mutable","name":"vault","nameLocation":"11594:5:160","nodeType":"VariableDeclaration","scope":76029,"src":"11586:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76014,"name":"address","nodeType":"ElementaryTypeName","src":"11586:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11585:15:160"},"returnParameters":{"id":76020,"nodeType":"ParameterList","parameters":[],"src":"11628:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76045,"nodeType":"FunctionDefinition","src":"11683:111:160","nodes":[],"body":{"id":76044,"nodeType":"Block","src":"11746:48:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76041,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76031,"src":"11781:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76037,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76038,"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":76039,"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":76040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11774:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84218,"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":76042,"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":76043,"nodeType":"ExpressionStatement","src":"11756:31:160"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76034,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76031,"src":"11739:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76035,"kind":"modifierInvocation","modifierName":{"id":76033,"name":"vaultOwner","nameLocations":["11728:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77252,"src":"11728:10:160"},"nodeType":"ModifierInvocation","src":"11728:17:160"}],"name":"enableVault","nameLocation":"11692:11:160","parameters":{"id":76032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76031,"mutability":"mutable","name":"vault","nameLocation":"11712:5:160","nodeType":"VariableDeclaration","scope":76045,"src":"11704:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76030,"name":"address","nodeType":"ElementaryTypeName","src":"11704:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11703:15:160"},"returnParameters":{"id":76036,"nodeType":"ParameterList","parameters":[],"src":"11746:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76093,"nodeType":"FunctionDefinition","src":"11800:355:160","nodes":[],"body":{"id":76092,"nodeType":"Block","src":"11867:288:160","nodes":[],"statements":[{"assignments":[76055],"declarations":[{"constant":false,"id":76055,"mutability":"mutable","name":"$","nameLocation":"11893:1:160","nodeType":"VariableDeclaration","scope":76092,"src":"11877:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76054,"nodeType":"UserDefinedTypeName","pathNode":{"id":76053,"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":76058,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76056,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76057,"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,76060],"declarations":[null,{"constant":false,"id":76060,"mutability":"mutable","name":"disabledTime","nameLocation":"11927:12:160","nodeType":"VariableDeclaration","scope":76092,"src":"11920:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76059,"name":"uint48","nodeType":"ElementaryTypeName","src":"11920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76066,"initialValue":{"arguments":[{"id":76064,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76047,"src":"11961:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76061,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76055,"src":"11943:1:160","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":"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":76063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11952:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84324,"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":76065,"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":76078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76067,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"11982:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76068,"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":76077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76070,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"12003:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":76071,"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":76072,"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":76076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76073,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"12022:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76074,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76055,"src":"12037:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76075,"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":76083,"nodeType":"IfStatement","src":"11978:138:160","trueBody":{"id":76082,"nodeType":"Block","src":"12057:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76079,"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":76080,"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":76081,"nodeType":"RevertStatement","src":"12071:34:160"}]}},{"expression":{"arguments":[{"id":76089,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76047,"src":"12142:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76084,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76055,"src":"12126:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76087,"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":76088,"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":76090,"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":76091,"nodeType":"ExpressionStatement","src":"12126:22:160"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76050,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76047,"src":"11860:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76051,"kind":"modifierInvocation","modifierName":{"id":76049,"name":"vaultOwner","nameLocations":["11849:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77252,"src":"11849:10:160"},"nodeType":"ModifierInvocation","src":"11849:17:160"}],"name":"unregisterVault","nameLocation":"11809:15:160","parameters":{"id":76048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76047,"mutability":"mutable","name":"vault","nameLocation":"11833:5:160","nodeType":"VariableDeclaration","scope":76093,"src":"11825:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76046,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11824:15:160"},"returnParameters":{"id":76052,"nodeType":"ParameterList","parameters":[],"src":"11867:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76289,"nodeType":"FunctionDefinition","src":"12161:1642:160","nodes":[],"body":{"id":76288,"nodeType":"Block","src":"12260:1543:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76104,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76097,"src":"12278:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76105,"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":76107,"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":76108,"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":76103,"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":76109,"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":76110,"nodeType":"ExpressionStatement","src":"12270:64:160"},{"assignments":[76115,76118],"declarations":[{"constant":false,"id":76115,"mutability":"mutable","name":"activeOperators","nameLocation":"12363:15:160","nodeType":"VariableDeclaration","scope":76288,"src":"12346:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76113,"name":"address","nodeType":"ElementaryTypeName","src":"12346:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76114,"nodeType":"ArrayTypeName","src":"12346:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76118,"mutability":"mutable","name":"stakes","nameLocation":"12397:6:160","nodeType":"VariableDeclaration","scope":76288,"src":"12380:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76116,"name":"uint256","nodeType":"ElementaryTypeName","src":"12380:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76117,"nodeType":"ArrayTypeName","src":"12380:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":76122,"initialValue":{"arguments":[{"id":76120,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76095,"src":"12433:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76119,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76432,"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":76121,"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":76126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76123,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"12451:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76124,"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":76125,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76097,"src":"12477:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76130,"nodeType":"IfStatement","src":"12447:92:160","trueBody":{"id":76129,"nodeType":"Block","src":"12492:47:160","statements":[{"expression":{"id":76127,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"12513:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76102,"id":76128,"nodeType":"Return","src":"12506:22:160"}]}},{"assignments":[76132],"declarations":[{"constant":false,"id":76132,"mutability":"mutable","name":"n","nameLocation":"12591:1:160","nodeType":"VariableDeclaration","scope":76288,"src":"12583:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76131,"name":"uint256","nodeType":"ElementaryTypeName","src":"12583:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76135,"initialValue":{"expression":{"id":76133,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"12595:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76134,"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":76213,"nodeType":"Block","src":"12659:336:160","statements":[{"body":{"id":76211,"nodeType":"Block","src":"12713:272:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76160,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"12735:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76162,"indexExpression":{"id":76161,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"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":76163,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"12747:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76167,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76164,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12754:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76165,"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":76210,"nodeType":"IfStatement","src":"12731:240:160","trueBody":{"id":76209,"nodeType":"Block","src":"12762:209:160","statements":[{"expression":{"id":76187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76169,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"12785:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76171,"indexExpression":{"id":76170,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"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":76172,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"12796:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76176,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76173,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12803:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76174,"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":76177,"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":76178,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"12814:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76182,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76179,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12821:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76180,"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":76183,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"12829: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":76147,"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":76186,"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":76188,"nodeType":"ExpressionStatement","src":"12784:55:160"},{"expression":{"id":76207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76189,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"12862:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76191,"indexExpression":{"id":76190,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"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":76192,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"12882:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76196,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76193,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12898:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76194,"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":76197,"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":76198,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"12909:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76202,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76199,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12925:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76200,"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":76203,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"12933:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76205,"indexExpression":{"id":76204,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"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":76206,"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":76208,"nodeType":"ExpressionStatement","src":"12861:91:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76150,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12693:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76151,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"12697:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76152,"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":76154,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"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":76212,"initializationExpression":{"assignments":[76147],"declarations":[{"constant":false,"id":76147,"mutability":"mutable","name":"j","nameLocation":"12686:1:160","nodeType":"VariableDeclaration","scope":76212,"src":"12678:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76146,"name":"uint256","nodeType":"ElementaryTypeName","src":"12678:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76149,"initialValue":{"hexValue":"30","id":76148,"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":76158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12708:3:160","subExpression":{"id":76157,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12708:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76159,"nodeType":"ExpressionStatement","src":"12708:3:160"},"nodeType":"ForStatement","src":"12673:312:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76140,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"12647:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76141,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"12651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12647:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76214,"initializationExpression":{"assignments":[76137],"declarations":[{"constant":false,"id":76137,"mutability":"mutable","name":"i","nameLocation":"12640:1:160","nodeType":"VariableDeclaration","scope":76214,"src":"12632:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76136,"name":"uint256","nodeType":"ElementaryTypeName","src":"12632:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76139,"initialValue":{"hexValue":"30","id":76138,"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":76144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:160","subExpression":{"id":76143,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"12654:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76145,"nodeType":"ExpressionStatement","src":"12654:3:160"},"nodeType":"ForStatement","src":"12627:368:160"},{"assignments":[76216],"declarations":[{"constant":false,"id":76216,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13070:14:160","nodeType":"VariableDeclaration","scope":76288,"src":"13062:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76215,"name":"uint256","nodeType":"ElementaryTypeName","src":"13062:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76218,"initialValue":{"hexValue":"31","id":76217,"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":[76220],"declarations":[{"constant":false,"id":76220,"mutability":"mutable","name":"lastStake","nameLocation":"13106:9:160","nodeType":"VariableDeclaration","scope":76288,"src":"13098:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76219,"name":"uint256","nodeType":"ElementaryTypeName","src":"13098:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76226,"initialValue":{"baseExpression":{"id":76221,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"13118:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76225,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76222,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76097,"src":"13125:13: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":"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":76250,"nodeType":"Block","src":"13218:123:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76238,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"13236:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76240,"indexExpression":{"id":76239,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76228,"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":76241,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76220,"src":"13249:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13236:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76245,"nodeType":"IfStatement","src":"13232:66:160","trueBody":{"id":76244,"nodeType":"Block","src":"13260:38:160","statements":[{"id":76243,"nodeType":"Break","src":"13278:5:160"}]}},{"expression":{"id":76248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76246,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76216,"src":"13311:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76247,"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":76249,"nodeType":"ExpressionStatement","src":"13311:19:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76231,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76228,"src":"13185:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76232,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"13189:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76233,"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":76251,"initializationExpression":{"assignments":[76228],"declarations":[{"constant":false,"id":76228,"mutability":"mutable","name":"i","nameLocation":"13166:1:160","nodeType":"VariableDeclaration","scope":76251,"src":"13158:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76227,"name":"uint256","nodeType":"ElementaryTypeName","src":"13158:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76230,"initialValue":{"id":76229,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76097,"src":"13170:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13158:25:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13213:3:160","subExpression":{"id":76235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76228,"src":"13213:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76237,"nodeType":"ExpressionStatement","src":"13213:3:160"},"nodeType":"ForStatement","src":"13153:188:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76252,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76216,"src":"13355:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":76253,"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":76284,"nodeType":"IfStatement","src":"13351:316:160","trueBody":{"id":76283,"nodeType":"Block","src":"13375:292:160","statements":[{"assignments":[76256],"declarations":[{"constant":false,"id":76256,"mutability":"mutable","name":"randomIndex","nameLocation":"13486:11:160","nodeType":"VariableDeclaration","scope":76283,"src":"13478:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76255,"name":"uint256","nodeType":"ElementaryTypeName","src":"13478:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76268,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":76262,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76095,"src":"13535:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":76260,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13518:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76261,"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":76263,"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":76259,"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":76264,"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":76258,"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":76257,"name":"uint256","nodeType":"ElementaryTypeName","src":"13500:7:160","typeDescriptions":{}}},"id":76265,"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":76266,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76216,"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":76281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76269,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"13571:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76273,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76270,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76097,"src":"13587:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76271,"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":76274,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"13608:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76280,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"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":76097,"src":"13624:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76276,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76256,"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":76278,"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":76282,"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":76115,"isOffset":false,"isSlot":false,"src":"13723:15:160","valueSize":1},{"declaration":76097,"isOffset":false,"isSlot":false,"src":"13740:13:160","valueSize":1}],"flags":["memory-safe"],"id":76285,"nodeType":"InlineAssembly","src":"13677:87:160"},{"expression":{"id":76286,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"13781:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76102,"id":76287,"nodeType":"Return","src":"13774:22:160"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12170:14:160","parameters":{"id":76098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76095,"mutability":"mutable","name":"ts","nameLocation":"12192:2:160","nodeType":"VariableDeclaration","scope":76289,"src":"12185:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76094,"name":"uint48","nodeType":"ElementaryTypeName","src":"12185:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76097,"mutability":"mutable","name":"maxValidators","nameLocation":"12204:13:160","nodeType":"VariableDeclaration","scope":76289,"src":"12196:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76096,"name":"uint256","nodeType":"ElementaryTypeName","src":"12196:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12184:34:160"},"returnParameters":{"id":76102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76289,"src":"12242:16:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76099,"name":"address","nodeType":"ElementaryTypeName","src":"12242:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76100,"nodeType":"ArrayTypeName","src":"12242:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12241:18:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76330,"nodeType":"FunctionDefinition","src":"13809:372:160","nodes":[],"body":{"id":76329,"nodeType":"Block","src":"13923:258:160","nodes":[],"statements":[{"assignments":[76302,76304],"declarations":[{"constant":false,"id":76302,"mutability":"mutable","name":"enabledTime","nameLocation":"13941:11:160","nodeType":"VariableDeclaration","scope":76329,"src":"13934:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76301,"name":"uint48","nodeType":"ElementaryTypeName","src":"13934:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76304,"mutability":"mutable","name":"disabledTime","nameLocation":"13961:12:160","nodeType":"VariableDeclaration","scope":76329,"src":"13954:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76303,"name":"uint48","nodeType":"ElementaryTypeName","src":"13954:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76311,"initialValue":{"arguments":[{"id":76309,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76291,"src":"14007:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76305,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76306,"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":76307,"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":76308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13998:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84324,"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":76310,"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":76317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14030:44:160","subExpression":{"arguments":[{"id":76313,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76302,"src":"14044:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76314,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76304,"src":"14057:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76315,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76293,"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":76312,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76717,"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":76316,"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":76321,"nodeType":"IfStatement","src":"14026:83:160","trueBody":{"id":76320,"nodeType":"Block","src":"14076:33:160","statements":[{"expression":{"hexValue":"30","id":76318,"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":76300,"id":76319,"nodeType":"Return","src":"14090:8:160"}]}},{"expression":{"id":76327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76322,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76299,"src":"14119:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76324,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76291,"src":"14161:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76325,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76293,"src":"14171:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76323,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76688,"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":76326,"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":76328,"nodeType":"ExpressionStatement","src":"14119:55:160"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76296,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76293,"src":"13895:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76297,"kind":"modifierInvocation","modifierName":{"id":76295,"name":"validTimestamp","nameLocations":["13880:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77146,"src":"13880:14:160"},"nodeType":"ModifierInvocation","src":"13880:18:160"}],"name":"getOperatorStakeAt","nameLocation":"13818:18:160","parameters":{"id":76294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76291,"mutability":"mutable","name":"operator","nameLocation":"13845:8:160","nodeType":"VariableDeclaration","scope":76330,"src":"13837:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76290,"name":"address","nodeType":"ElementaryTypeName","src":"13837:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76293,"mutability":"mutable","name":"ts","nameLocation":"13862:2:160","nodeType":"VariableDeclaration","scope":76330,"src":"13855:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76292,"name":"uint48","nodeType":"ElementaryTypeName","src":"13855:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13836:29:160"},"returnParameters":{"id":76300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76299,"mutability":"mutable","name":"stake","nameLocation":"13916:5:160","nodeType":"VariableDeclaration","scope":76330,"src":"13908:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76298,"name":"uint256","nodeType":"ElementaryTypeName","src":"13908:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13907:15:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76432,"nodeType":"FunctionDefinition","src":"14224:940:160","nodes":[],"body":{"id":76431,"nodeType":"Block","src":"14405:759:160","nodes":[],"statements":[{"assignments":[76346],"declarations":[{"constant":false,"id":76346,"mutability":"mutable","name":"$","nameLocation":"14431:1:160","nodeType":"VariableDeclaration","scope":76431,"src":"14415:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76345,"nodeType":"UserDefinedTypeName","pathNode":{"id":76344,"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":76349,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76347,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76348,"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":76359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76350,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"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":76354,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76346,"src":"14487:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76355,"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":76356,"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":76357,"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":76353,"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":76351,"name":"address","nodeType":"ElementaryTypeName","src":"14477:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76352,"nodeType":"ArrayTypeName","src":"14477:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76358,"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":76360,"nodeType":"ExpressionStatement","src":"14455:53:160"},{"expression":{"id":76370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76361,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"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":76365,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76346,"src":"14541:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76366,"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":76367,"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":76368,"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":76364,"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":76362,"name":"uint256","nodeType":"ElementaryTypeName","src":"14531:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76363,"nodeType":"ArrayTypeName","src":"14531:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":76369,"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":76371,"nodeType":"ExpressionStatement","src":"14518:44:160"},{"assignments":[76373],"declarations":[{"constant":false,"id":76373,"mutability":"mutable","name":"operatorIdx","nameLocation":"14581:11:160","nodeType":"VariableDeclaration","scope":76431,"src":"14573:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76372,"name":"uint256","nodeType":"ElementaryTypeName","src":"14573:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76375,"initialValue":{"hexValue":"30","id":76374,"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":76428,"nodeType":"Block","src":"14654:369:160","statements":[{"assignments":[76389,76391,76393],"declarations":[{"constant":false,"id":76389,"mutability":"mutable","name":"operator","nameLocation":"14677:8:160","nodeType":"VariableDeclaration","scope":76428,"src":"14669:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76388,"name":"address","nodeType":"ElementaryTypeName","src":"14669:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76391,"mutability":"mutable","name":"enabled","nameLocation":"14694:7:160","nodeType":"VariableDeclaration","scope":76428,"src":"14687:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76390,"name":"uint48","nodeType":"ElementaryTypeName","src":"14687:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76393,"mutability":"mutable","name":"disabled","nameLocation":"14710:8:160","nodeType":"VariableDeclaration","scope":76428,"src":"14703:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76392,"name":"uint48","nodeType":"ElementaryTypeName","src":"14703:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76399,"initialValue":{"arguments":[{"id":76397,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"14746:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76394,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76346,"src":"14722:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76395,"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":76396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14734:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84300,"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":76398,"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":76405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14767:36:160","subExpression":{"arguments":[{"id":76401,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76391,"src":"14781:7:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76402,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76393,"src":"14790:8:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76403,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76332,"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":76400,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76717,"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":76404,"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":76408,"nodeType":"IfStatement","src":"14763:83:160","trueBody":{"id":76407,"nodeType":"Block","src":"14805:41:160","statements":[{"id":76406,"nodeType":"Continue","src":"14823:8:160"}]}},{"expression":{"id":76413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76409,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"14860:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76411,"indexExpression":{"id":76410,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"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":76412,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76389,"src":"14891:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14860:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76414,"nodeType":"ExpressionStatement","src":"14860:39:160"},{"expression":{"id":76422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76415,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"14913:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76417,"indexExpression":{"id":76416,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"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":76419,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76389,"src":"14969:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76420,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76332,"src":"14979:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76418,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76688,"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":76421,"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":76423,"nodeType":"ExpressionStatement","src":"14913:69:160"},{"expression":{"id":76426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76424,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"14996:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76425,"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":76427,"nodeType":"ExpressionStatement","src":"14996:16:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"14623:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76380,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76346,"src":"14627:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76381,"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":76382,"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":76383,"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":76429,"initializationExpression":{"assignments":[76377],"declarations":[{"constant":false,"id":76377,"mutability":"mutable","name":"i","nameLocation":"14620:1:160","nodeType":"VariableDeclaration","scope":76429,"src":"14612:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76376,"name":"uint256","nodeType":"ElementaryTypeName","src":"14612:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76378,"nodeType":"VariableDeclarationStatement","src":"14612:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14649:3:160","subExpression":{"id":76385,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"14651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76387,"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":76339,"isOffset":false,"isSlot":false,"src":"15079:15:160","valueSize":1},{"declaration":76373,"isOffset":false,"isSlot":false,"src":"15096:11:160","valueSize":1},{"declaration":76373,"isOffset":false,"isSlot":false,"src":"15136:11:160","valueSize":1},{"declaration":76342,"isOffset":false,"isSlot":false,"src":"15128:6:160","valueSize":1}],"flags":["memory-safe"],"id":76430,"nodeType":"InlineAssembly","src":"15033:125:160"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76335,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76332,"src":"14321:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76336,"kind":"modifierInvocation","modifierName":{"id":76334,"name":"validTimestamp","nameLocations":["14306:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77146,"src":"14306:14:160"},"nodeType":"ModifierInvocation","src":"14306:18:160"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14233:25:160","parameters":{"id":76333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76332,"mutability":"mutable","name":"ts","nameLocation":"14266:2:160","nodeType":"VariableDeclaration","scope":76432,"src":"14259:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76331,"name":"uint48","nodeType":"ElementaryTypeName","src":"14259:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14258:11:160"},"returnParameters":{"id":76343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76339,"mutability":"mutable","name":"activeOperators","nameLocation":"14359:15:160","nodeType":"VariableDeclaration","scope":76432,"src":"14342:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76337,"name":"address","nodeType":"ElementaryTypeName","src":"14342:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76338,"nodeType":"ArrayTypeName","src":"14342:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76342,"mutability":"mutable","name":"stakes","nameLocation":"14393:6:160","nodeType":"VariableDeclaration","scope":76432,"src":"14376:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76340,"name":"uint256","nodeType":"ElementaryTypeName","src":"14376:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76341,"nodeType":"ArrayTypeName","src":"14376:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14341:59:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":76548,"nodeType":"FunctionDefinition","src":"15170:952:160","nodes":[],"body":{"id":76547,"nodeType":"Block","src":"15228:894:160","nodes":[],"statements":[{"assignments":[76441],"declarations":[{"constant":false,"id":76441,"mutability":"mutable","name":"$","nameLocation":"15254:1:160","nodeType":"VariableDeclaration","scope":76547,"src":"15238:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76440,"nodeType":"UserDefinedTypeName","pathNode":{"id":76439,"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":76444,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76442,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76443,"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":76450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76445,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15283:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76446,"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":76447,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"15297:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76448,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83190,"src":"15297:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15283:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76455,"nodeType":"IfStatement","src":"15279:101:160","trueBody":{"id":76454,"nodeType":"Block","src":"15329:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76451,"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":76452,"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":76453,"nodeType":"RevertStatement","src":"15343:26:160"}]}},{"body":{"id":76545,"nodeType":"Block","src":"15428:688:160","statements":[{"assignments":[76468],"declarations":[{"constant":false,"id":76468,"mutability":"mutable","name":"slashData","nameLocation":"15461:9:160","nodeType":"VariableDeclaration","scope":76545,"src":"15442:28:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":76467,"nodeType":"UserDefinedTypeName","pathNode":{"id":76466,"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":76472,"initialValue":{"baseExpression":{"id":76469,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76436,"src":"15473:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76471,"indexExpression":{"id":76470,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76457,"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":76479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15498:41:160","subExpression":{"arguments":[{"expression":{"id":76476,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76468,"src":"15520:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76477,"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":76473,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"15499:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76474,"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":76475,"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":76478,"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":76484,"nodeType":"IfStatement","src":"15494:110:160","trueBody":{"id":76483,"nodeType":"Block","src":"15541:63:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76480,"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":76481,"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":76482,"nodeType":"RevertStatement","src":"15559:30:160"}]}},{"body":{"id":76543,"nodeType":"Block","src":"15668:438:160","statements":[{"assignments":[76498],"declarations":[{"constant":false,"id":76498,"mutability":"mutable","name":"vaultData","nameLocation":"15710:9:160","nodeType":"VariableDeclaration","scope":76543,"src":"15686:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":76497,"nodeType":"UserDefinedTypeName","pathNode":{"id":76496,"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":76503,"initialValue":{"baseExpression":{"expression":{"id":76499,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76468,"src":"15722: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":"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":76502,"indexExpression":{"id":76501,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"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":76510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15764:35:160","subExpression":{"arguments":[{"expression":{"id":76507,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76498,"src":"15783:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76508,"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":76504,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"15765:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76505,"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":76506,"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":76509,"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":76515,"nodeType":"IfStatement","src":"15760:109:160","trueBody":{"id":76514,"nodeType":"Block","src":"15801:68:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76511,"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":76512,"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":76513,"nodeType":"RevertStatement","src":"15823:27:160"}]}},{"assignments":[76517],"declarations":[{"constant":false,"id":76517,"mutability":"mutable","name":"slasher","nameLocation":"15895:7:160","nodeType":"VariableDeclaration","scope":76543,"src":"15887:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76516,"name":"address","nodeType":"ElementaryTypeName","src":"15887:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76524,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76519,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76498,"src":"15912:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76520,"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":76518,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"15905:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76521,"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":76522,"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":76523,"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":76529,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"16012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76530,"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":76531,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76468,"src":"16026:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76532,"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":76533,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76498,"src":"16046:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76534,"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":76535,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76468,"src":"16064:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76536,"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":76539,"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":76538,"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":76537,"name":"bytes","nodeType":"ElementaryTypeName","src":"16082:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76540,"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":76526,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76517,"src":"15969:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76525,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"15956:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76527,"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":76528,"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":76541,"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":76542,"nodeType":"ExpressionStatement","src":"15956:135:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76488,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"15634:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76489,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76468,"src":"15638:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76490,"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":76491,"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":76544,"initializationExpression":{"assignments":[76486],"declarations":[{"constant":false,"id":76486,"mutability":"mutable","name":"j","nameLocation":"15631:1:160","nodeType":"VariableDeclaration","scope":76544,"src":"15623:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76485,"name":"uint256","nodeType":"ElementaryTypeName","src":"15623:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76487,"nodeType":"VariableDeclarationStatement","src":"15623:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15663:3:160","subExpression":{"id":76493,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"15665:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76495,"nodeType":"ExpressionStatement","src":"15663:3:160"},"nodeType":"ForStatement","src":"15618:488:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76459,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76457,"src":"15406:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76460,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76436,"src":"15410:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76461,"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":76546,"initializationExpression":{"assignments":[76457],"declarations":[{"constant":false,"id":76457,"mutability":"mutable","name":"i","nameLocation":"15403:1:160","nodeType":"VariableDeclaration","scope":76546,"src":"15395:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76456,"name":"uint256","nodeType":"ElementaryTypeName","src":"15395:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76458,"nodeType":"VariableDeclarationStatement","src":"15395:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15423:3:160","subExpression":{"id":76463,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76457,"src":"15425:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76465,"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":76437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76436,"mutability":"mutable","name":"data","nameLocation":"15213:4:160","nodeType":"VariableDeclaration","scope":76548,"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":76434,"nodeType":"UserDefinedTypeName","pathNode":{"id":76433,"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":76435,"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":76438,"nodeType":"ParameterList","parameters":[],"src":"15228:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76617,"nodeType":"FunctionDefinition","src":"16128:528:160","nodes":[],"body":{"id":76616,"nodeType":"Block","src":"16195:461:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76555,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16209:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76556,"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":76557,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76558,"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":76559,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16244:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83192,"src":"16223:38:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16209:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76566,"nodeType":"IfStatement","src":"16205:108:160","trueBody":{"id":76565,"nodeType":"Block","src":"16263:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76562,"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":76563,"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":76564,"nodeType":"RevertStatement","src":"16277:25:160"}]}},{"body":{"id":76614,"nodeType":"Block","src":"16364:286:160","statements":[{"assignments":[76579],"declarations":[{"constant":false,"id":76579,"mutability":"mutable","name":"slash","nameLocation":"16403:5:160","nodeType":"VariableDeclaration","scope":76614,"src":"16378:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":76578,"nodeType":"UserDefinedTypeName","pathNode":{"id":76577,"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":76583,"initialValue":{"baseExpression":{"id":76580,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76552,"src":"16411:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76582,"indexExpression":{"id":76581,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"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":76591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16440:40:160","subExpression":{"arguments":[{"expression":{"id":76588,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"16468:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76589,"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":76584,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76585,"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":76586,"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":76587,"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":76590,"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":76596,"nodeType":"IfStatement","src":"16436:106:160","trueBody":{"id":76595,"nodeType":"Block","src":"16482:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76592,"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":76593,"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":76594,"nodeType":"RevertStatement","src":"16500:27:160"}]}},{"expression":{"arguments":[{"expression":{"id":76606,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"16613:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76607,"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":76610,"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":76609,"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":76608,"name":"bytes","nodeType":"ElementaryTypeName","src":"16630:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76611,"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":76599,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"16576:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76600,"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":76598,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"16569:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76601,"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":76602,"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":76603,"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":76597,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"16556:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76604,"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":76605,"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":76612,"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":76613,"nodeType":"ExpressionStatement","src":"16556:83:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76570,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"16339:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76571,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76552,"src":"16343:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76572,"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":76615,"initializationExpression":{"assignments":[76568],"declarations":[{"constant":false,"id":76568,"mutability":"mutable","name":"i","nameLocation":"16336:1:160","nodeType":"VariableDeclaration","scope":76615,"src":"16328:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76567,"name":"uint256","nodeType":"ElementaryTypeName","src":"16328:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76569,"nodeType":"VariableDeclarationStatement","src":"16328:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16359:3:160","subExpression":{"id":76574,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"16361:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76576,"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":76553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76552,"mutability":"mutable","name":"slashes","nameLocation":"16177:7:160","nodeType":"VariableDeclaration","scope":76617,"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":76550,"nodeType":"UserDefinedTypeName","pathNode":{"id":76549,"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":76551,"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":76554,"nodeType":"ParameterList","parameters":[],"src":"16195:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76688,"nodeType":"FunctionDefinition","src":"16662:556:160","nodes":[],"body":{"id":76687,"nodeType":"Block","src":"16771:447:160","nodes":[],"statements":[{"assignments":[76628],"declarations":[{"constant":false,"id":76628,"mutability":"mutable","name":"$","nameLocation":"16797:1:160","nodeType":"VariableDeclaration","scope":76687,"src":"16781:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76627,"nodeType":"UserDefinedTypeName","pathNode":{"id":76626,"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":76631,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76629,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76630,"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":76685,"nodeType":"Block","src":"16865:347:160","statements":[{"assignments":[76645,76647,76649],"declarations":[{"constant":false,"id":76645,"mutability":"mutable","name":"vault","nameLocation":"16888:5:160","nodeType":"VariableDeclaration","scope":76685,"src":"16880:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76644,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76647,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16902:16:160","nodeType":"VariableDeclaration","scope":76685,"src":"16895:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76646,"name":"uint48","nodeType":"ElementaryTypeName","src":"16895:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76649,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16927:17:160","nodeType":"VariableDeclaration","scope":76685,"src":"16920:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76648,"name":"uint48","nodeType":"ElementaryTypeName","src":"16920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76655,"initialValue":{"arguments":[{"id":76653,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16969:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76650,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76628,"src":"16948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76651,"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":76652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16957:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84300,"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":76654,"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":76661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16990:54:160","subExpression":{"arguments":[{"id":76657,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76647,"src":"17004:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76658,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76649,"src":"17022:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76659,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76621,"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":76656,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76717,"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":76660,"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":76664,"nodeType":"IfStatement","src":"16986:101:160","trueBody":{"id":76663,"nodeType":"Block","src":"17046:41:160","statements":[{"id":76662,"nodeType":"Continue","src":"17064:8:160"}]}},{"expression":{"id":76683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76665,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76624,"src":"17101:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":76674,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76628,"src":"17160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76675,"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":76676,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76619,"src":"17174:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76677,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76621,"src":"17184:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76680,"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":76679,"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":76678,"name":"bytes","nodeType":"ElementaryTypeName","src":"17192:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76681,"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":76668,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76645,"src":"17132:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76667,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"17125:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76669,"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":76670,"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":76671,"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":76666,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"17110:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76672,"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":76673,"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":76682,"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":76684,"nodeType":"ExpressionStatement","src":"17101:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16837:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76636,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76628,"src":"16841:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76637,"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":76638,"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":76639,"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":76686,"initializationExpression":{"assignments":[76633],"declarations":[{"constant":false,"id":76633,"mutability":"mutable","name":"i","nameLocation":"16834:1:160","nodeType":"VariableDeclaration","scope":76686,"src":"16826:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76632,"name":"uint256","nodeType":"ElementaryTypeName","src":"16826:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76634,"nodeType":"VariableDeclarationStatement","src":"16826:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16860:3:160","subExpression":{"id":76641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16862:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76643,"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":76622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76619,"mutability":"mutable","name":"operator","nameLocation":"16713:8:160","nodeType":"VariableDeclaration","scope":76688,"src":"16705:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76618,"name":"address","nodeType":"ElementaryTypeName","src":"16705:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76621,"mutability":"mutable","name":"ts","nameLocation":"16730:2:160","nodeType":"VariableDeclaration","scope":76688,"src":"16723:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76620,"name":"uint48","nodeType":"ElementaryTypeName","src":"16723:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16704:29:160"},"returnParameters":{"id":76625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76624,"mutability":"mutable","name":"stake","nameLocation":"16764:5:160","nodeType":"VariableDeclaration","scope":76688,"src":"16756:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76623,"name":"uint256","nodeType":"ElementaryTypeName","src":"16756:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16755:15:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76717,"nodeType":"FunctionDefinition","src":"17224:208:160","nodes":[],"body":{"id":76716,"nodeType":"Block","src":"17326:106:160","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76699,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76690,"src":"17343:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76700,"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":76704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76702,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76690,"src":"17363:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76703,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76694,"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":76712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76706,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76692,"src":"17385:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76707,"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":76711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76709,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76692,"src":"17406:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76710,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76694,"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":76713,"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":76698,"id":76715,"nodeType":"Return","src":"17336:89:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17233:12:160","parameters":{"id":76695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76690,"mutability":"mutable","name":"enabledTime","nameLocation":"17253:11:160","nodeType":"VariableDeclaration","scope":76717,"src":"17246:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76689,"name":"uint48","nodeType":"ElementaryTypeName","src":"17246:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76692,"mutability":"mutable","name":"disabledTime","nameLocation":"17273:12:160","nodeType":"VariableDeclaration","scope":76717,"src":"17266:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76691,"name":"uint48","nodeType":"ElementaryTypeName","src":"17266:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76694,"mutability":"mutable","name":"ts","nameLocation":"17294:2:160","nodeType":"VariableDeclaration","scope":76717,"src":"17287:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76693,"name":"uint48","nodeType":"ElementaryTypeName","src":"17287:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17245:52:160"},"returnParameters":{"id":76698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76717,"src":"17320:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76696,"name":"bool","nodeType":"ElementaryTypeName","src":"17320:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17319:6:160"},"scope":77273,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76734,"nodeType":"FunctionDefinition","src":"17477:154:160","nodes":[],"body":{"id":76733,"nodeType":"Block","src":"17533:98:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76722,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76719,"src":"17547:4:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76725,"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":76724,"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":76723,"name":"address","nodeType":"ElementaryTypeName","src":"17555:7:160","typeDescriptions":{}}},"id":76726,"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":76732,"nodeType":"IfStatement","src":"17543:82:160","trueBody":{"id":76731,"nodeType":"Block","src":"17567:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76728,"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":76729,"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":76730,"nodeType":"RevertStatement","src":"17581:33:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17486:19:160","parameters":{"id":76720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76719,"mutability":"mutable","name":"hook","nameLocation":"17514:4:160","nodeType":"VariableDeclaration","scope":76734,"src":"17506:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76718,"name":"address","nodeType":"ElementaryTypeName","src":"17506:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17505:14:160"},"returnParameters":{"id":76721,"nodeType":"ParameterList","parameters":[],"src":"17533:0:160"},"scope":77273,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76822,"nodeType":"FunctionDefinition","src":"17637:2002:160","nodes":[],"body":{"id":76821,"nodeType":"Block","src":"17695:1944:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76741,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"17713:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76742,"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":76743,"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":76745,"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":76746,"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":76740,"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":76747,"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":76748,"nodeType":"ExpressionStatement","src":"17705:62:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76750,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"18102:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76751,"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":76755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":76752,"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":76753,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"18133:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76754,"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":76757,"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":76758,"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":76749,"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":76759,"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":76760,"nodeType":"ExpressionStatement","src":"18094:93:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76762,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"18377:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76763,"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":76764,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"18402: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":"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":76767,"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":76768,"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":76761,"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":76769,"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":76770,"nodeType":"ExpressionStatement","src":"18369:109:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76772,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"18665:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76773,"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":76774,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"18687:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76775,"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":76777,"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":76778,"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":76771,"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":76779,"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":76780,"nodeType":"ExpressionStatement","src":"18657:103:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76782,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"18840:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76783,"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":76784,"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":76786,"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":76787,"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":76781,"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":76788,"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":76789,"nodeType":"ExpressionStatement","src":"18832:70:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76791,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"19112:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76792,"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":76793,"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":76795,"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":76796,"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":76790,"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":76797,"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":76798,"nodeType":"ExpressionStatement","src":"19104:84:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76800,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"19219:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76801,"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":76802,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"19239:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76803,"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":76805,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"19267: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":"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":76808,"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":76809,"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":76799,"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":76810,"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":76811,"nodeType":"ExpressionStatement","src":"19198:158:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76813,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"19561:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76814,"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":76815,"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":76817,"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":76818,"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":76812,"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":76819,"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":76820,"nodeType":"ExpressionStatement","src":"19553:79:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17646:16:160","parameters":{"id":76738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76737,"mutability":"mutable","name":"$","nameLocation":"17679:1:160","nodeType":"VariableDeclaration","scope":76822,"src":"17663:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76736,"nodeType":"UserDefinedTypeName","pathNode":{"id":76735,"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":76739,"nodeType":"ParameterList","parameters":[],"src":"17695:0:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77089,"nodeType":"FunctionDefinition","src":"19687:2572:160","nodes":[],"body":{"id":77088,"nodeType":"Block","src":"19735:2524:160","nodes":[],"statements":[{"assignments":[76829],"declarations":[{"constant":false,"id":76829,"mutability":"mutable","name":"$","nameLocation":"19761:1:160","nodeType":"VariableDeclaration","scope":77088,"src":"19745:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76828,"nodeType":"UserDefinedTypeName","pathNode":{"id":76827,"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":76832,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76830,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":76831,"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":76841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19790:54:160","subExpression":{"arguments":[{"id":76839,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76824,"src":"19837:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":76834,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"19801:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76835,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19813:13:160","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"19801:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76833,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"19791:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":76837,"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":76838,"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":76840,"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":76846,"nodeType":"IfStatement","src":"19786:109:160","trueBody":{"id":76845,"nodeType":"Block","src":"19846:49:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76842,"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":76843,"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":76844,"nodeType":"RevertStatement","src":"19860:24:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76848,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76824,"src":"19927:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76847,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"19909:17:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$65208_$","typeString":"type(contract IMigratableEntity)"}},"id":76849,"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":76850,"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":76851,"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":76852,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"19948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76853,"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":76859,"nodeType":"IfStatement","src":"19905:128:160","trueBody":{"id":76858,"nodeType":"Block","src":"19975:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76855,"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":76856,"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":76857,"nodeType":"RevertStatement","src":"19989:33:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76861,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76824,"src":"20054:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76860,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20047:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76862,"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":76863,"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":76864,"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":76865,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20078:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76866,"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":76872,"nodeType":"IfStatement","src":"20043:100:160","trueBody":{"id":76871,"nodeType":"Block","src":"20092:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76868,"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":76869,"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":76870,"nodeType":"RevertStatement","src":"20106:26:160"}]}},{"assignments":[76874],"declarations":[{"constant":false,"id":76874,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20188:18:160","nodeType":"VariableDeclaration","scope":77088,"src":"20181:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76873,"name":"uint48","nodeType":"ElementaryTypeName","src":"20181:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76880,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76876,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76824,"src":"20216:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76875,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20209:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76877,"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":76878,"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":76879,"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":76884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76881,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"20253:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76882,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20274:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76883,"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":76889,"nodeType":"IfStatement","src":"20249:107:160","trueBody":{"id":76888,"nodeType":"Block","src":"20299:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76885,"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":76886,"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":76887,"nodeType":"RevertStatement","src":"20313:32:160"}]}},{"condition":{"id":76895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20403:40:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76891,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76824,"src":"20411:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76890,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20404:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76892,"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":76893,"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":76894,"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":76900,"nodeType":"IfStatement","src":"20399:103:160","trueBody":{"id":76899,"nodeType":"Block","src":"20445:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76896,"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":76897,"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":76898,"nodeType":"RevertStatement","src":"20459:32:160"}]}},{"assignments":[76903],"declarations":[{"constant":false,"id":76903,"mutability":"mutable","name":"delegator","nameLocation":"20527:9:160","nodeType":"VariableDeclaration","scope":77088,"src":"20512:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"},"typeName":{"id":76902,"nodeType":"UserDefinedTypeName","pathNode":{"id":76901,"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":76911,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76906,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76824,"src":"20561:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76905,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20554:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76907,"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":76908,"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":76909,"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":76904,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20539:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76910,"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":76922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":76914,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20621:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76915,"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":76912,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76903,"src":"20595:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76913,"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":76916,"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":76919,"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":76918,"name":"uint256","nodeType":"ElementaryTypeName","src":"20643:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76917,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20638:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76920,"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":76921,"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":76935,"nodeType":"IfStatement","src":"20591:158:160","trueBody":{"id":76934,"nodeType":"Block","src":"20657:92:160","statements":[{"expression":{"arguments":[{"id":76926,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"20700:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":76929,"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":76928,"name":"uint256","nodeType":"ElementaryTypeName","src":"20725:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76927,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20720:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76930,"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":76931,"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":76923,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76903,"src":"20671:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76925,"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":76932,"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":76933,"nodeType":"ExpressionStatement","src":"20671:67:160"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76938,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76903,"src":"20793:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}],"id":76937,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20778:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76939,"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":76940,"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":76941,"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":76936,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76734,"src":"20758:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76942,"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":76943,"nodeType":"ExpressionStatement","src":"20758:53:160"},{"condition":{"id":76949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20857:38:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76945,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76824,"src":"20865:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76944,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20858:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76946,"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":76947,"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":76948,"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":76954,"nodeType":"IfStatement","src":"20853:99:160","trueBody":{"id":76953,"nodeType":"Block","src":"20897:55:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76950,"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":76951,"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":76952,"nodeType":"RevertStatement","src":"20911:30:160"}]}},{"assignments":[76956],"declarations":[{"constant":false,"id":76956,"mutability":"mutable","name":"slasher","nameLocation":"20970:7:160","nodeType":"VariableDeclaration","scope":77088,"src":"20962:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76955,"name":"address","nodeType":"ElementaryTypeName","src":"20962:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76962,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76958,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76824,"src":"20987:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76957,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20980:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76959,"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":76960,"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":76961,"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":76970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76964,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76956,"src":"21026:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76963,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"21018:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$65100_$","typeString":"type(contract IEntity)"}},"id":76965,"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":76966,"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":76967,"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":76968,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"21045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76969,"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":76975,"nodeType":"IfStatement","src":"21014:111:160","trueBody":{"id":76974,"nodeType":"Block","src":"21068:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76971,"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":76972,"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":76973,"nodeType":"RevertStatement","src":"21082:32:160"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76977,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76956,"src":"21152:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76976,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21139:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76978,"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":76979,"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":76980,"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":76985,"nodeType":"IfStatement","src":"21135:98:160","trueBody":{"id":76984,"nodeType":"Block","src":"21177:56:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76981,"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":76982,"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":76983,"nodeType":"RevertStatement","src":"21191:31:160"}]}},{"assignments":[76987],"declarations":[{"constant":false,"id":76987,"mutability":"mutable","name":"vetoDuration","nameLocation":"21250:12:160","nodeType":"VariableDeclaration","scope":77088,"src":"21243:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76986,"name":"uint48","nodeType":"ElementaryTypeName","src":"21243:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76993,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76989,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76956,"src":"21278:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76988,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21265:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76990,"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":76991,"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":76992,"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":76997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76994,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76987,"src":"21315:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76995,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"21330:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76996,"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":77002,"nodeType":"IfStatement","src":"21311:92:160","trueBody":{"id":77001,"nodeType":"Block","src":"21349:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76998,"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":76999,"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":77000,"nodeType":"RevertStatement","src":"21363:29:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77003,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76987,"src":"21417:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":77004,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"21432:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77005,"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":77007,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"21459:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77013,"nodeType":"IfStatement","src":"21413:119:160","trueBody":{"id":77012,"nodeType":"Block","src":"21479:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77009,"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":77010,"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":77011,"nodeType":"RevertStatement","src":"21493:28:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77015,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76956,"src":"21559:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77014,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21546:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77016,"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":77017,"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":77018,"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":77019,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"21595:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77020,"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":77026,"nodeType":"IfStatement","src":"21542:139:160","trueBody":{"id":77025,"nodeType":"Block","src":"21624:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77022,"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":77023,"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":77024,"nodeType":"RevertStatement","src":"21638:32:160"}]}},{"assignments":[77028],"declarations":[{"constant":false,"id":77028,"mutability":"mutable","name":"resolver","nameLocation":"21699:8:160","nodeType":"VariableDeclaration","scope":77088,"src":"21691:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77027,"name":"address","nodeType":"ElementaryTypeName","src":"21691:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77040,"initialValue":{"arguments":[{"expression":{"id":77033,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"21741:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77034,"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":77037,"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":77036,"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":77035,"name":"bytes","nodeType":"ElementaryTypeName","src":"21759:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77038,"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":77030,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76956,"src":"21723:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77029,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21710:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77031,"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":77032,"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":77039,"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":77046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77041,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77028,"src":"21782:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77044,"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":77043,"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":77042,"name":"address","nodeType":"ElementaryTypeName","src":"21794:7:160","typeDescriptions":{}}},"id":77045,"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":77066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77062,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77028,"src":"21934:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":77063,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"21946:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77064,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21958:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83194,"src":"21946:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21934:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77071,"nodeType":"IfStatement","src":"21930:147:160","trueBody":{"id":77070,"nodeType":"Block","src":"21972:105:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77067,"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":77068,"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":77069,"nodeType":"RevertStatement","src":"22041:25:160"}]}},"id":77072,"nodeType":"IfStatement","src":"21778:299:160","trueBody":{"id":77061,"nodeType":"Block","src":"21806:118:160","statements":[{"expression":{"arguments":[{"id":77051,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"21854:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":77052,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"21874:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77053,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21886:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83194,"src":"21874:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":77057,"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":77056,"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":77055,"name":"bytes","nodeType":"ElementaryTypeName","src":"21904:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77058,"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":77048,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76956,"src":"21833:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77047,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21820:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77049,"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":77050,"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":77059,"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":77060,"nodeType":"ExpressionStatement","src":"21820:93:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77074,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76824,"src":"22170:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77073,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"22163:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":77075,"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":77076,"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":77077,"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":77080,"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":77079,"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":77078,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:160","typeDescriptions":{}}},"id":77081,"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":77087,"nodeType":"IfStatement","src":"22159:94:160","trueBody":{"id":77086,"nodeType":"Block","src":"22202:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77083,"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":77084,"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":77085,"nodeType":"RevertStatement","src":"22216:26:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19696:14:160","parameters":{"id":76825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76824,"mutability":"mutable","name":"_vault","nameLocation":"19719:6:160","nodeType":"VariableDeclaration","scope":77089,"src":"19711:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76823,"name":"address","nodeType":"ElementaryTypeName","src":"19711:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19710:16:160"},"returnParameters":{"id":76826,"nodeType":"ParameterList","parameters":[],"src":"19735:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77136,"nodeType":"FunctionDefinition","src":"22265:482:160","nodes":[],"body":{"id":77135,"nodeType":"Block","src":"22344:403:160","nodes":[],"statements":[{"condition":{"id":77105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22358:72:160","subExpression":{"arguments":[{"id":77103,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77093,"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":77097,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":77098,"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":77099,"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_$83195_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22390:20:160","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"22369:41:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77096,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"22359:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":77101,"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":77102,"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":77104,"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":77110,"nodeType":"IfStatement","src":"22354:135:160","trueBody":{"id":77109,"nodeType":"Block","src":"22432:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77106,"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":77107,"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":77108,"nodeType":"RevertStatement","src":"22446:32:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77112,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77093,"src":"22525:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77111,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22503:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77113,"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":77114,"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":77115,"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":77116,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77091,"src":"22546:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22503:49:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77122,"nodeType":"IfStatement","src":"22499:114:160","trueBody":{"id":77121,"nodeType":"Block","src":"22554:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77118,"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":77119,"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":77120,"nodeType":"RevertStatement","src":"22568:34:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":77129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77124,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77093,"src":"22649:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77123,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22627:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77125,"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":77126,"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":77127,"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":77128,"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":77134,"nodeType":"IfStatement","src":"22623:118:160","trueBody":{"id":77133,"nodeType":"Block","src":"22675:66:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77130,"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":77131,"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":77132,"nodeType":"RevertStatement","src":"22689:41:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22274:22:160","parameters":{"id":77094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77091,"mutability":"mutable","name":"_vault","nameLocation":"22305:6:160","nodeType":"VariableDeclaration","scope":77136,"src":"22297:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77090,"name":"address","nodeType":"ElementaryTypeName","src":"22297:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77093,"mutability":"mutable","name":"_rewards","nameLocation":"22321:8:160","nodeType":"VariableDeclaration","scope":77136,"src":"22313:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77092,"name":"address","nodeType":"ElementaryTypeName","src":"22313:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22296:34:160"},"returnParameters":{"id":77095,"nodeType":"ParameterList","parameters":[],"src":"22344:0:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77146,"nodeType":"ModifierDefinition","src":"22884:82:160","nodes":[],"body":{"id":77145,"nodeType":"Block","src":"22919:47:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77141,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77138,"src":"22945:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":77140,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77193,"src":"22929:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":77142,"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":77143,"nodeType":"ExpressionStatement","src":"22929:19:160"},{"id":77144,"nodeType":"PlaceholderStatement","src":"22958:1:160"}]},"name":"validTimestamp","nameLocation":"22893:14:160","parameters":{"id":77139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77138,"mutability":"mutable","name":"ts","nameLocation":"22915:2:160","nodeType":"VariableDeclaration","scope":77146,"src":"22908:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77137,"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":77193,"nodeType":"FunctionDefinition","src":"22972:408:160","nodes":[],"body":{"id":77192,"nodeType":"Block","src":"23022:358:160","nodes":[],"statements":[{"assignments":[77153],"declarations":[{"constant":false,"id":77153,"mutability":"mutable","name":"$","nameLocation":"23048:1:160","nodeType":"VariableDeclaration","scope":77192,"src":"23032:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77152,"nodeType":"UserDefinedTypeName","pathNode":{"id":77151,"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":77156,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77154,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77206,"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":77155,"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":77161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77157,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77148,"src":"23076:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77158,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23082:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77159,"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":77160,"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":77166,"nodeType":"IfStatement","src":"23072:80:160","trueBody":{"id":77165,"nodeType":"Block","src":"23100:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77162,"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":77163,"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":77164,"nodeType":"RevertStatement","src":"23114:27:160"}]}},{"assignments":[77168],"declarations":[{"constant":false,"id":77168,"mutability":"mutable","name":"gracePeriod","nameLocation":"23169:11:160","nodeType":"VariableDeclaration","scope":77192,"src":"23162:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77167,"name":"uint48","nodeType":"ElementaryTypeName","src":"23162:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77179,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77169,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23183:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77170,"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":77171,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23207:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77172,"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":77176,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23252: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":"23254:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23252:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23183:87:160","trueExpression":{"expression":{"id":77174,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23228: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":"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":77186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77180,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77148,"src":"23284:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77181,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77168,"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":77183,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23304:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77184,"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":77185,"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":77191,"nodeType":"IfStatement","src":"23280:94:160","trueBody":{"id":77190,"nodeType":"Block","src":"23322:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77187,"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":77188,"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":77189,"nodeType":"RevertStatement","src":"23336:27:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22981:15:160","parameters":{"id":77149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77148,"mutability":"mutable","name":"ts","nameLocation":"23004:2:160","nodeType":"VariableDeclaration","scope":77193,"src":"22997:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77147,"name":"uint48","nodeType":"ElementaryTypeName","src":"22997:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22996:11:160"},"returnParameters":{"id":77150,"nodeType":"ParameterList","parameters":[],"src":"23022:0:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77206,"nodeType":"FunctionDefinition","src":"23386:201:160","nodes":[],"body":{"id":77205,"nodeType":"Block","src":"23456:131:160","nodes":[],"statements":[{"assignments":[77200],"declarations":[{"constant":false,"id":77200,"mutability":"mutable","name":"slot","nameLocation":"23474:4:160","nodeType":"VariableDeclaration","scope":77205,"src":"23466:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23466:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77203,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77201,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77218,"src":"23481:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":77202,"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":77197,"isOffset":false,"isSlot":true,"src":"23548:15:160","suffix":"slot","valueSize":1},{"declaration":77200,"isOffset":false,"isSlot":false,"src":"23567:4:160","valueSize":1}],"flags":["memory-safe"],"id":77204,"nodeType":"InlineAssembly","src":"23509:72:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23395:8:160","parameters":{"id":77194,"nodeType":"ParameterList","parameters":[],"src":"23403:2:160"},"returnParameters":{"id":77198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77197,"mutability":"mutable","name":"middleware","nameLocation":"23444:10:160","nodeType":"VariableDeclaration","scope":77206,"src":"23428:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77196,"nodeType":"UserDefinedTypeName","pathNode":{"id":77195,"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":77273,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77218,"nodeType":"FunctionDefinition","src":"23593:128:160","nodes":[],"body":{"id":77217,"nodeType":"Block","src":"23651:70:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":77213,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75075,"src":"23695:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77211,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23668:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77212,"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":77214,"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":77215,"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":77210,"id":77216,"nodeType":"Return","src":"23661:53:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23602:15:160","parameters":{"id":77207,"nodeType":"ParameterList","parameters":[],"src":"23617:2:160"},"returnParameters":{"id":77210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77209,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77218,"src":"23642:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23642:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23641:9:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77242,"nodeType":"FunctionDefinition","src":"23727:200:160","nodes":[],"body":{"id":77241,"nodeType":"Block","src":"23795:132:160","nodes":[],"statements":[{"assignments":[77226],"declarations":[{"constant":false,"id":77226,"mutability":"mutable","name":"slot","nameLocation":"23813:4:160","nodeType":"VariableDeclaration","scope":77241,"src":"23805:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23805:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77231,"initialValue":{"arguments":[{"id":77229,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77220,"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":77227,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"23820:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":77228,"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":77230,"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":77239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":77235,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75075,"src":"23894:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77232,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23867:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77234,"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":77236,"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":77237,"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":77238,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77226,"src":"23916:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23867:53:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77240,"nodeType":"ExpressionStatement","src":"23867:53:160"}]},"implemented":true,"kind":"function","modifiers":[{"id":77223,"kind":"modifierInvocation","modifierName":{"id":77222,"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":77221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77220,"mutability":"mutable","name":"namespace","nameLocation":"23766:9:160","nodeType":"VariableDeclaration","scope":77242,"src":"23752:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":77219,"name":"string","nodeType":"ElementaryTypeName","src":"23752:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23751:25:160"},"returnParameters":{"id":77224,"nodeType":"ParameterList","parameters":[],"src":"23795:0:160"},"scope":77273,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77252,"nodeType":"ModifierDefinition","src":"23933:81:160","nodes":[],"body":{"id":77251,"nodeType":"Block","src":"23968:46:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77247,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77244,"src":"23990:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77246,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77272,"src":"23978:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77248,"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":77249,"nodeType":"ExpressionStatement","src":"23978:18:160"},{"id":77250,"nodeType":"PlaceholderStatement","src":"24006:1:160"}]},"name":"vaultOwner","nameLocation":"23942:10:160","parameters":{"id":77245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77244,"mutability":"mutable","name":"vault","nameLocation":"23961:5:160","nodeType":"VariableDeclaration","scope":77252,"src":"23953:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77243,"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":77272,"nodeType":"FunctionDefinition","src":"24020:181:160","nodes":[],"body":{"id":77271,"nodeType":"Block","src":"24070:131:160","nodes":[],"statements":[{"condition":{"id":77265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24084:62:160","subExpression":{"arguments":[{"id":77261,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75078,"src":"24115:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24135:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77263,"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":77258,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77254,"src":"24100:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77257,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"24085:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$44539_$","typeString":"type(contract IAccessControl)"}},"id":77259,"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":77260,"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":77264,"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":77270,"nodeType":"IfStatement","src":"24080:115:160","trueBody":{"id":77269,"nodeType":"Block","src":"24148:47:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77266,"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":77267,"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":77268,"nodeType":"RevertStatement","src":"24162:22:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"24029:11:160","parameters":{"id":77255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77254,"mutability":"mutable","name":"vault","nameLocation":"24049:5:160","nodeType":"VariableDeclaration","scope":77272,"src":"24041:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77253,"name":"address","nodeType":"ElementaryTypeName","src":"24041:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24040:15:160"},"returnParameters":{"id":77256,"nodeType":"ParameterList","parameters":[],"src":"24070:0:160"},"scope":77273,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":75050,"name":"IMiddleware","nameLocations":["2399:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"2399:11:160"},"id":75051,"nodeType":"InheritanceSpecifier","src":"2399:11:160"},{"baseName":{"id":75052,"name":"OwnableUpgradeable","nameLocations":["2412:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"2412:18:160"},"id":75053,"nodeType":"InheritanceSpecifier","src":"2412:18:160"},{"baseName":{"id":75054,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["2432:35:160"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"2432:35:160"},"id":75055,"nodeType":"InheritanceSpecifier","src":"2432:35:160"},{"baseName":{"id":75056,"name":"UUPSUpgradeable","nameLocations":["2469:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"2469:15:160"},"id":75057,"nodeType":"InheritanceSpecifier","src":"2469:15:160"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77273,46243,44833,43943,42322,43484,42590,74131],"name":"Middleware","nameLocation":"2385:10:160","scope":77274,"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,84071,84074,84077],"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:171;23973:47:85;2376:21827:160;9356:11;23973:47:85;:::i;:::-;2376:21827:160;;;;;;1227:2:171;2376:21827:160;;;1249:2:171;2376:21827:160;941:319:171;;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:171;2376:21827:160;23973:47:85;2376:21827:160;;;;;;;;;23973:47:85;;:::i;3710:23:171:-;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:171;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:171;:::i;:::-;2165:51;2161:103;;2376:21827:160;;2161:103:171;-1:-1:-1;;;2239:14:171;;2376:21827:160;;2239:14:171;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:171;23973:47:85;2376:21827:160;11943:8;23973:47:85;:::i;3505:23:171:-;-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:171;837:15:87;;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:171;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:171;;11500:17:160;2166:50:171;:::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:171;;;;3268:14;14768:35:160;3215:12:171;;;;;:::i;:::-;3268:14;;;2376:21827:160;;;;;;1227:2:171;2376:21827:160;;;1249:2:171;2376:21827:160;941:319:171;;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:171;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:171:-;2376:21827:160;;2779:23:171;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2779:23:171:-;2376:21827:160;;;;;2817:16:171;;;:37;;;;;2626:351;2813:87;;;2910:60;837:15:87;-1:-1:-1;;;819:34:87;837:15;819:34;:::i;:::-;1716:2:171;2376:21827:160;;1667:52:171;1740:2;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:171;;2910:60;:::i;:::-;;2626:351::o;2813:87::-;2877:12;;;-1:-1:-1;2877:12:171;;-1:-1:-1;2877:12:171;2817:37;2376:21827:160;;;;2837:17:171;;2817:37;;;2276:344;2376:21827:160;;2428:23:171;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2428:23:171:-;2376:21827:160;;;;2466:16:171;;: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:171;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:171;;2563:50;:::i;2462:91::-;2526:16;;;-1:-1:-1;2526:16:171;;-1:-1:-1;2526:16:171;2466:37;2376:21827:160;;;;2486:17:171;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:171;;;;;;;;3268:14;16991:53:160;3215:12:171;;;;;:::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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e\",\"dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE\"]},\"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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7","urls":["bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e","dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE"],"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":77319,"exportedSymbols":{"EnumerableMap":[58543],"Gear":[84435],"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":[84723],"Middleware":[77318],"OwnableUpgradeable":[42322],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"Subnetwork":[64978],"Time":[60343],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:24130:160","nodes":[{"id":75048,"nodeType":"PragmaDirective","src":"74:24:160","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":75050,"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":77319,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":75049,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75052,"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":77319,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":75051,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75054,"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":77319,"sourceUnit":44540,"symbolAliases":[{"foreign":{"id":75053,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"351:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75056,"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":77319,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":75055,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"433:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75058,"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":77319,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":75057,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"522:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75060,"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":77319,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":75059,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"603:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75062,"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":77319,"sourceUnit":58544,"symbolAliases":[{"foreign":{"id":75061,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58543,"src":"678:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75064,"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":77319,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":75063,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"765:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75066,"nodeType":"ImportDirective","src":"824:48:160","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":77319,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":75065,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"832:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75068,"nodeType":"ImportDirective","src":"873:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":77319,"sourceUnit":84436,"symbolAliases":[{"foreign":{"id":75067,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"881:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75070,"nodeType":"ImportDirective","src":"918:66:160","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":77319,"sourceUnit":84724,"symbolAliases":[{"foreign":{"id":75069,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84723,"src":"926:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75072,"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":77319,"sourceUnit":64979,"symbolAliases":[{"foreign":{"id":75071,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64978,"src":"993:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75074,"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":77319,"sourceUnit":64999,"symbolAliases":[{"foreign":{"id":75073,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"1075:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75076,"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":77319,"sourceUnit":65101,"symbolAliases":[{"foreign":{"id":75075,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"1160:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75078,"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":77319,"sourceUnit":65209,"symbolAliases":[{"foreign":{"id":75077,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"1234:17:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75080,"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":77319,"sourceUnit":65333,"symbolAliases":[{"foreign":{"id":75079,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"1328:9:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75082,"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":77319,"sourceUnit":65507,"symbolAliases":[{"foreign":{"id":75081,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"1406:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75084,"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":77319,"sourceUnit":65995,"symbolAliases":[{"foreign":{"id":75083,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"1497:25:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75086,"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":77319,"sourceUnit":66121,"symbolAliases":[{"foreign":{"id":75085,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"1608:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75088,"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":77319,"sourceUnit":66519,"symbolAliases":[{"foreign":{"id":75087,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"1695:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75090,"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":77319,"sourceUnit":66857,"symbolAliases":[{"foreign":{"id":75089,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"1780:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75092,"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":77319,"sourceUnit":71799,"symbolAliases":[{"foreign":{"id":75091,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"1856:23:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75094,"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":77319,"sourceUnit":71993,"symbolAliases":[{"foreign":{"id":75093,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"1982:21:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77318,"nodeType":"ContractDefinition","src":"2376:21827:160","nodes":[{"id":75106,"nodeType":"UsingForDirective","src":"2491:55:160","nodes":[],"global":false,"libraryName":{"id":75103,"name":"EnumerableMap","nameLocations":["2497:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2497:13:160"},"typeName":{"id":75105,"nodeType":"UserDefinedTypeName","pathNode":{"id":75104,"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":75110,"nodeType":"UsingForDirective","src":"2551:57:160","nodes":[],"global":false,"libraryName":{"id":75107,"name":"MapWithTimeData","nameLocations":["2557:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":84723,"src":"2557:15:160"},"typeName":{"id":75109,"nodeType":"UserDefinedTypeName","pathNode":{"id":75108,"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":75114,"nodeType":"UsingForDirective","src":"2614:58:160","nodes":[],"global":false,"libraryName":{"id":75111,"name":"EnumerableMap","nameLocations":["2620:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2620:13:160"},"typeName":{"id":75113,"nodeType":"UserDefinedTypeName","pathNode":{"id":75112,"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":75117,"nodeType":"UsingForDirective","src":"2678:29:160","nodes":[],"global":false,"libraryName":{"id":75115,"name":"Subnetwork","nameLocations":["2684:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":64978,"src":"2684:10:160"},"typeName":{"id":75116,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75120,"nodeType":"VariableDeclaration","src":"2820:106:160","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2845:12:160","scope":77318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2820:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":75119,"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":75123,"nodeType":"VariableDeclaration","src":"2933:50:160","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2958:18:160","scope":77318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2933:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":75122,"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":75126,"nodeType":"VariableDeclaration","src":"2989:45:160","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3012:18:160","scope":77318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":75124,"name":"uint8","nodeType":"ElementaryTypeName","src":"2989:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":75125,"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":75134,"nodeType":"FunctionDefinition","src":"3109:53:160","nodes":[],"body":{"id":75133,"nodeType":"Block","src":"3123:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75130,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"3133:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75131,"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":75132,"nodeType":"ExpressionStatement","src":"3133:22:160"}]},"documentation":{"id":75127,"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":75128,"nodeType":"ParameterList","parameters":[],"src":"3120:2:160"},"returnParameters":{"id":75129,"nodeType":"ParameterList","parameters":[],"src":"3123:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75288,"nodeType":"FunctionDefinition","src":"3168:1277:160","nodes":[],"body":{"id":75287,"nodeType":"Block","src":"3236:1209:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75143,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3261:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75144,"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":75142,"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":75145,"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":75146,"nodeType":"ExpressionStatement","src":"3246:29:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75147,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"3285:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75148,"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":75149,"nodeType":"ExpressionStatement","src":"3285:33:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":75151,"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":75150,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77287,"src":"3329:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75152,"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":75153,"nodeType":"ExpressionStatement","src":"3329:50:160"},{"assignments":[75156],"declarations":[{"constant":false,"id":75156,"mutability":"mutable","name":"$","nameLocation":"3405:1:160","nodeType":"VariableDeclaration","scope":75287,"src":"3389:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75155,"nodeType":"UserDefinedTypeName","pathNode":{"id":75154,"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":75159,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75157,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75158,"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":75165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75160,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"3430:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75162,"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":75163,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3446:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75164,"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":75166,"nodeType":"ExpressionStatement","src":"3430:35:160"},{"expression":{"id":75172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75167,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"3475:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75169,"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":75170,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3501:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75171,"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":75173,"nodeType":"ExpressionStatement","src":"3475:55:160"},{"expression":{"id":75179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75174,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"3540:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75176,"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":75177,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3564:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75178,"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":75180,"nodeType":"ExpressionStatement","src":"3540:51:160"},{"expression":{"id":75186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75181,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"3601:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75183,"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":75184,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3622:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75185,"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":75187,"nodeType":"ExpressionStatement","src":"3601:45:160"},{"expression":{"id":75193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75188,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"3656:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75190,"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":75191,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3676:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75192,"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":75194,"nodeType":"ExpressionStatement","src":"3656:43:160"},{"expression":{"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75195,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"3709:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75197,"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":75198,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3736:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75199,"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":75201,"nodeType":"ExpressionStatement","src":"3709:57:160"},{"expression":{"id":75207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75202,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"3776: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":"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":75205,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3806: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":"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":75208,"nodeType":"ExpressionStatement","src":"3776:63:160"},{"expression":{"id":75214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75209,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"3849: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":"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":75212,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3877: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":"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":75215,"nodeType":"ExpressionStatement","src":"3849:59:160"},{"expression":{"id":75221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75216,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"3918: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":"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":75219,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"3942: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":"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":75222,"nodeType":"ExpressionStatement","src":"3918:51:160"},{"expression":{"id":75228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75223,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"4002:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75225,"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":75226,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"4017:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75227,"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":75229,"nodeType":"ExpressionStatement","src":"4002:33:160"},{"expression":{"id":75240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75230,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"4045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75232,"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":75238,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75126,"src":"4085:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":75235,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4068:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77318","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77318","typeString":"contract Middleware"}],"id":75234,"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":75233,"name":"address","nodeType":"ElementaryTypeName","src":"4060:7:160","typeDescriptions":{}}},"id":75236,"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":75237,"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":75239,"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":75241,"nodeType":"ExpressionStatement","src":"4045:59:160"},{"expression":{"id":75247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75242,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"4114:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75244,"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":75245,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"4130:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75246,"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":75248,"nodeType":"ExpressionStatement","src":"4114:35:160"},{"expression":{"id":75254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75249,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"4160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75251,"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":75252,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"4171:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75253,"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":75255,"nodeType":"ExpressionStatement","src":"4160:25:160"},{"expression":{"id":75261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75256,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"src":"4196:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75258,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75259,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"4210:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75260,"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_$83572_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4196:31:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75262,"nodeType":"ExpressionStatement","src":"4196:31:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":75264,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"4255:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75265,"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_$83572_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4273:15:160","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":83557,"src":"4255:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75263,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"4238:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$64998_$","typeString":"type(contract INetworkRegistry)"}},"id":75267,"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":75268,"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":75269,"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":75270,"nodeType":"ExpressionStatement","src":"4238:69:160"},{"expression":{"arguments":[{"arguments":[{"id":75279,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4402:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77318","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77318","typeString":"contract Middleware"}],"id":75278,"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":75277,"name":"address","nodeType":"ElementaryTypeName","src":"4394:7:160","typeDescriptions":{}}},"id":75280,"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":75272,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75137,"src":"4343:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75273,"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_$83572_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:17:160","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":83559,"src":"4343:35:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75271,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"4317:25:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$65994_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":75275,"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":75276,"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":75281,"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":75282,"nodeType":"ExpressionStatement","src":"4317:91:160"},{"expression":{"arguments":[{"id":75284,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75156,"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":75283,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76867,"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":75285,"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":75286,"nodeType":"ExpressionStatement","src":"4419:19:160"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":75140,"kind":"modifierInvocation","modifierName":{"id":75139,"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":75138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75137,"mutability":"mutable","name":"_params","nameLocation":"3208:7:160","nodeType":"VariableDeclaration","scope":75288,"src":"3188:27:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":75136,"nodeType":"UserDefinedTypeName","pathNode":{"id":75135,"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":75141,"nodeType":"ParameterList","parameters":[],"src":"3236:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75485,"nodeType":"FunctionDefinition","src":"4518:1578:160","nodes":[],"body":{"id":75484,"nodeType":"Block","src":"4576:1520:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75298,"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":75299,"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":75297,"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":75300,"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":75301,"nodeType":"ExpressionStatement","src":"4586:23:160"},{"assignments":[75304],"declarations":[{"constant":false,"id":75304,"mutability":"mutable","name":"oldStorage","nameLocation":"4636:10:160","nodeType":"VariableDeclaration","scope":75484,"src":"4620:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75303,"nodeType":"UserDefinedTypeName","pathNode":{"id":75302,"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":75307,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75305,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75306,"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":75309,"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":75308,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77287,"src":"4670:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75310,"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":75311,"nodeType":"ExpressionStatement","src":"4670:50:160"},{"assignments":[75314],"declarations":[{"constant":false,"id":75314,"mutability":"mutable","name":"newStorage","nameLocation":"4746:10:160","nodeType":"VariableDeclaration","scope":75484,"src":"4730:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75313,"nodeType":"UserDefinedTypeName","pathNode":{"id":75312,"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":75317,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75315,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75316,"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":75323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75318,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"4780:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75320,"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":75321,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"4805: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":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":75324,"nodeType":"ExpressionStatement","src":"4780:47:160"},{"expression":{"id":75330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75325,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"4837:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75327,"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":75328,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"4872: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":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":75331,"nodeType":"ExpressionStatement","src":"4837:67:160"},{"expression":{"id":75337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75332,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"4914:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75334,"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":75335,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"4947: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":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":75338,"nodeType":"ExpressionStatement","src":"4914:63:160"},{"expression":{"id":75344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75339,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"4987:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75341,"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":75342,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5017: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":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":75345,"nodeType":"ExpressionStatement","src":"4987:57:160"},{"expression":{"id":75351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75346,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5054:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75348,"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":75349,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5083: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":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":75352,"nodeType":"ExpressionStatement","src":"5054:55:160"},{"expression":{"id":75358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75353,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5119:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75355,"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":75356,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5155: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":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":75359,"nodeType":"ExpressionStatement","src":"5119:69:160"},{"expression":{"id":75365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75360,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5198:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75362,"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":75363,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5237: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":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":75366,"nodeType":"ExpressionStatement","src":"5198:75:160"},{"expression":{"id":75372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75367,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5283:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75369,"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":75370,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5320: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":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":75373,"nodeType":"ExpressionStatement","src":"5283:71:160"},{"expression":{"id":75379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75374,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5364:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75376,"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":75377,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5397:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75378,"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":75380,"nodeType":"ExpressionStatement","src":"5364:63:160"},{"expression":{"id":75386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75381,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5437:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75383,"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":75384,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5461:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75385,"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":75387,"nodeType":"ExpressionStatement","src":"5437:45:160"},{"expression":{"id":75393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75388,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5492:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75390,"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":75391,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5516:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75392,"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":75394,"nodeType":"ExpressionStatement","src":"5492:45:160"},{"expression":{"id":75400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75395,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5547:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75397,"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":75398,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5572:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75399,"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":75401,"nodeType":"ExpressionStatement","src":"5547:47:160"},{"expression":{"id":75407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75402,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5604:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75404,"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":75405,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5624:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75406,"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":75408,"nodeType":"ExpressionStatement","src":"5604:37:160"},{"expression":{"id":75414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75409,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5651:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75411,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75412,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5674:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75413,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5651:43:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75415,"nodeType":"ExpressionStatement","src":"5651:43:160"},{"body":{"id":75448,"nodeType":"Block","src":"5765:132:160","statements":[{"assignments":[75430,75432],"declarations":[{"constant":false,"id":75430,"mutability":"mutable","name":"key","nameLocation":"5788:3:160","nodeType":"VariableDeclaration","scope":75448,"src":"5780:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75429,"name":"address","nodeType":"ElementaryTypeName","src":"5780:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75432,"mutability":"mutable","name":"value","nameLocation":"5801:5:160","nodeType":"VariableDeclaration","scope":75448,"src":"5793:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75431,"name":"uint256","nodeType":"ElementaryTypeName","src":"5793:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75438,"initialValue":{"arguments":[{"id":75436,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75417,"src":"5834:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75433,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5810: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":"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":75435,"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":75437,"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":75444,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75430,"src":"5875:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75445,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75432,"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":75439,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"5850:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75442,"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":75443,"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":75446,"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":75447,"nodeType":"ExpressionStatement","src":"5850:36:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75420,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75417,"src":"5725:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75421,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5729:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75422,"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":75423,"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":75424,"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":75449,"initializationExpression":{"assignments":[75417],"declarations":[{"constant":false,"id":75417,"mutability":"mutable","name":"i","nameLocation":"5718:1:160","nodeType":"VariableDeclaration","scope":75449,"src":"5710:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75416,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75419,"initialValue":{"hexValue":"30","id":75418,"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":75427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5760:3:160","subExpression":{"id":75426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75417,"src":"5760:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75428,"nodeType":"ExpressionStatement","src":"5760:3:160"},"nodeType":"ForStatement","src":"5705:192:160"},{"body":{"id":75482,"nodeType":"Block","src":"5964:126:160","statements":[{"assignments":[75464,75466],"declarations":[{"constant":false,"id":75464,"mutability":"mutable","name":"key","nameLocation":"5987:3:160","nodeType":"VariableDeclaration","scope":75482,"src":"5979:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75463,"name":"address","nodeType":"ElementaryTypeName","src":"5979:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75466,"mutability":"mutable","name":"value","nameLocation":"6000:5:160","nodeType":"VariableDeclaration","scope":75482,"src":"5992:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75465,"name":"uint256","nodeType":"ElementaryTypeName","src":"5992:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75472,"initialValue":{"arguments":[{"id":75470,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75451,"src":"6030:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75467,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"6009:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75468,"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":75469,"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":75471,"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":75478,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75464,"src":"6068:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75479,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75466,"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":75473,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75314,"src":"6046:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75476,"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":75477,"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":75480,"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":75481,"nodeType":"ExpressionStatement","src":"6046:33:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75451,"src":"5927:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75455,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"5931:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75456,"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":75457,"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":75458,"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":75483,"initializationExpression":{"assignments":[75451],"declarations":[{"constant":false,"id":75451,"mutability":"mutable","name":"i","nameLocation":"5920:1:160","nodeType":"VariableDeclaration","scope":75483,"src":"5912:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75450,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75453,"initialValue":{"hexValue":"30","id":75452,"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":75461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5959:3:160","subExpression":{"id":75460,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75451,"src":"5959:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75462,"nodeType":"ExpressionStatement","src":"5959:3:160"},"nodeType":"ForStatement","src":"5907:183:160"}]},"documentation":{"id":75289,"nodeType":"StructuredDocumentation","src":"4451:62:160","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75292,"kind":"modifierInvocation","modifierName":{"id":75291,"name":"onlyOwner","nameLocations":["4549:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"4549:9:160"},"nodeType":"ModifierInvocation","src":"4549:9:160"},{"arguments":[{"hexValue":"32","id":75294,"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":75295,"kind":"modifierInvocation","modifierName":{"id":75293,"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":75290,"nodeType":"ParameterList","parameters":[],"src":"4539:2:160"},"returnParameters":{"id":75296,"nodeType":"ParameterList","parameters":[],"src":"4576:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75495,"nodeType":"FunctionDefinition","src":"6261:84:160","nodes":[],"body":{"id":75494,"nodeType":"Block","src":"6343:2:160","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":75486,"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":75492,"kind":"modifierInvocation","modifierName":{"id":75491,"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":75490,"nodeType":"OverrideSpecifier","overrides":[],"src":"6324:8:160"},"parameters":{"id":75489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75488,"mutability":"mutable","name":"newImplementation","nameLocation":"6296:17:160","nodeType":"VariableDeclaration","scope":75495,"src":"6288:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75487,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6287:27:160"},"returnParameters":{"id":75493,"nodeType":"ParameterList","parameters":[],"src":"6343:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75505,"nodeType":"FunctionDefinition","src":"6370:98:160","nodes":[],"body":{"id":75504,"nodeType":"Block","src":"6422:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75500,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75501,"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":75502,"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":75499,"id":75503,"nodeType":"Return","src":"6432:29:160"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6379:11:160","parameters":{"id":75496,"nodeType":"ParameterList","parameters":[],"src":"6390:2:160"},"returnParameters":{"id":75499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75505,"src":"6414:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75497,"name":"uint48","nodeType":"ElementaryTypeName","src":"6414:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6413:8:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75515,"nodeType":"FunctionDefinition","src":"6474:118:160","nodes":[],"body":{"id":75514,"nodeType":"Block","src":"6536:56:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75510,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75511,"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":75512,"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":75509,"id":75513,"nodeType":"Return","src":"6546:39:160"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6483:21:160","parameters":{"id":75506,"nodeType":"ParameterList","parameters":[],"src":"6504:2:160"},"returnParameters":{"id":75509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75515,"src":"6528:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75507,"name":"uint48","nodeType":"ElementaryTypeName","src":"6528:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6527:8:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75525,"nodeType":"FunctionDefinition","src":"6598:116:160","nodes":[],"body":{"id":75524,"nodeType":"Block","src":"6660:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75520,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75521,"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":75522,"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":75519,"id":75523,"nodeType":"Return","src":"6670:37:160"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6607:19:160","parameters":{"id":75516,"nodeType":"ParameterList","parameters":[],"src":"6626:2:160"},"returnParameters":{"id":75519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75525,"src":"6652:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75517,"name":"uint48","nodeType":"ElementaryTypeName","src":"6652:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6651:8:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75535,"nodeType":"FunctionDefinition","src":"6720:110:160","nodes":[],"body":{"id":75534,"nodeType":"Block","src":"6779:51:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75530,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75531,"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":75532,"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":75529,"id":75533,"nodeType":"Return","src":"6789:34:160"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6729:16:160","parameters":{"id":75526,"nodeType":"ParameterList","parameters":[],"src":"6745:2:160"},"returnParameters":{"id":75529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75535,"src":"6771:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75527,"name":"uint48","nodeType":"ElementaryTypeName","src":"6771:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6770:8:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75545,"nodeType":"FunctionDefinition","src":"6836:108:160","nodes":[],"body":{"id":75544,"nodeType":"Block","src":"6894:50:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75540,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75541,"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":75542,"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":75539,"id":75543,"nodeType":"Return","src":"6904:33:160"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6845:15:160","parameters":{"id":75536,"nodeType":"ParameterList","parameters":[],"src":"6860:2:160"},"returnParameters":{"id":75539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75545,"src":"6886:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75537,"name":"uint48","nodeType":"ElementaryTypeName","src":"6886:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6885:8:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75555,"nodeType":"FunctionDefinition","src":"6950:122:160","nodes":[],"body":{"id":75554,"nodeType":"Block","src":"7015:57:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75550,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75551,"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":75552,"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":75549,"id":75553,"nodeType":"Return","src":"7025:40:160"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6959:22:160","parameters":{"id":75546,"nodeType":"ParameterList","parameters":[],"src":"6981:2:160"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75555,"src":"7007:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75547,"name":"uint48","nodeType":"ElementaryTypeName","src":"7007:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7006:8:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75565,"nodeType":"FunctionDefinition","src":"7078:129:160","nodes":[],"body":{"id":75564,"nodeType":"Block","src":"7147:60:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75560,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75561,"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":75562,"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":75559,"id":75563,"nodeType":"Return","src":"7157:43:160"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7087:25:160","parameters":{"id":75556,"nodeType":"ParameterList","parameters":[],"src":"7112:2:160"},"returnParameters":{"id":75559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75558,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75565,"src":"7138:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75557,"name":"uint256","nodeType":"ElementaryTypeName","src":"7138:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7137:9:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75575,"nodeType":"FunctionDefinition","src":"7213:124:160","nodes":[],"body":{"id":75574,"nodeType":"Block","src":"7279:58:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75570,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75571,"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":75572,"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":75569,"id":75573,"nodeType":"Return","src":"7289:41:160"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7222:23:160","parameters":{"id":75566,"nodeType":"ParameterList","parameters":[],"src":"7245:2:160"},"returnParameters":{"id":75569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75575,"src":"7271:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75567,"name":"uint64","nodeType":"ElementaryTypeName","src":"7271:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7270:8:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75585,"nodeType":"FunctionDefinition","src":"7343:116:160","nodes":[],"body":{"id":75584,"nodeType":"Block","src":"7405:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75580,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75581,"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":75582,"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":75579,"id":75583,"nodeType":"Return","src":"7415:37:160"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7352:19:160","parameters":{"id":75576,"nodeType":"ParameterList","parameters":[],"src":"7371:2:160"},"returnParameters":{"id":75579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75585,"src":"7397:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75577,"name":"uint64","nodeType":"ElementaryTypeName","src":"7397:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7396:8:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75595,"nodeType":"FunctionDefinition","src":"7465:99:160","nodes":[],"body":{"id":75594,"nodeType":"Block","src":"7519:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75590,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75591,"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":75592,"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":75589,"id":75593,"nodeType":"Return","src":"7529:28:160"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7474:10:160","parameters":{"id":75586,"nodeType":"ParameterList","parameters":[],"src":"7484:2:160"},"returnParameters":{"id":75589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75588,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75595,"src":"7510:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75587,"name":"address","nodeType":"ElementaryTypeName","src":"7510:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7509:9:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75605,"nodeType":"FunctionDefinition","src":"7570:99:160","nodes":[],"body":{"id":75604,"nodeType":"Block","src":"7624:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75600,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75601,"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":75602,"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":75599,"id":75603,"nodeType":"Return","src":"7634:28:160"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7579:10:160","parameters":{"id":75596,"nodeType":"ParameterList","parameters":[],"src":"7589:2:160"},"returnParameters":{"id":75599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75605,"src":"7615:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7615:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7614:9:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75615,"nodeType":"FunctionDefinition","src":"7675:101:160","nodes":[],"body":{"id":75614,"nodeType":"Block","src":"7730:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75610,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75611,"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":75612,"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":75609,"id":75613,"nodeType":"Return","src":"7740:29:160"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7684:11:160","parameters":{"id":75606,"nodeType":"ParameterList","parameters":[],"src":"7695:2:160"},"returnParameters":{"id":75609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75615,"src":"7721:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75607,"name":"uint256","nodeType":"ElementaryTypeName","src":"7721:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7720:9:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75625,"nodeType":"FunctionDefinition","src":"7782:91:160","nodes":[],"body":{"id":75624,"nodeType":"Block","src":"7832:41:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75620,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75621,"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":75622,"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":75619,"id":75623,"nodeType":"Return","src":"7842:24:160"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7791:6:160","parameters":{"id":75616,"nodeType":"ParameterList","parameters":[],"src":"7797:2:160"},"returnParameters":{"id":75619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75625,"src":"7823:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75617,"name":"address","nodeType":"ElementaryTypeName","src":"7823:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7822:9:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75636,"nodeType":"FunctionDefinition","src":"7879:129:160","nodes":[],"body":{"id":75635,"nodeType":"Block","src":"7964:44:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75631,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75632,"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":75633,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":75630,"id":75634,"nodeType":"Return","src":"7974:27:160"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7888:18:160","parameters":{"id":75626,"nodeType":"ParameterList","parameters":[],"src":"7906:2:160"},"returnParameters":{"id":75630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75636,"src":"7932:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83572_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":75628,"nodeType":"UserDefinedTypeName","pathNode":{"id":75627,"name":"Gear.SymbioticContracts","nameLocations":["7932:4:160","7937:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":83572,"src":"7932:23:160"},"referencedDeclaration":83572,"src":"7932:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83572_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7931:32:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75667,"nodeType":"FunctionDefinition","src":"8033:263:160","nodes":[],"body":{"id":75666,"nodeType":"Block","src":"8089:207:160","nodes":[],"statements":[{"assignments":[75643],"declarations":[{"constant":false,"id":75643,"mutability":"mutable","name":"$","nameLocation":"8115:1:160","nodeType":"VariableDeclaration","scope":75666,"src":"8099:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75642,"nodeType":"UserDefinedTypeName","pathNode":{"id":75641,"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":75646,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75644,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75645,"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":75652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75647,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8143:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75648,"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":75649,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75643,"src":"8157:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75650,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8169:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83567,"src":"8157:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8143:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75657,"nodeType":"IfStatement","src":"8139:101:160","trueBody":{"id":75656,"nodeType":"Block","src":"8189:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75653,"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":75654,"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":75655,"nodeType":"RevertStatement","src":"8203:26:160"}]}},{"expression":{"id":75664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75658,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75643,"src":"8249:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75661,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8261:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83567,"src":"8249:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75663,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75638,"src":"8282:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8249:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75665,"nodeType":"ExpressionStatement","src":"8249:40:160"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"8042:20:160","parameters":{"id":75639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75638,"mutability":"mutable","name":"newRole","nameLocation":"8071:7:160","nodeType":"VariableDeclaration","scope":75667,"src":"8063:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75637,"name":"address","nodeType":"ElementaryTypeName","src":"8063:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8062:17:160"},"returnParameters":{"id":75640,"nodeType":"ParameterList","parameters":[],"src":"8089:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75698,"nodeType":"FunctionDefinition","src":"8302:259:160","nodes":[],"body":{"id":75697,"nodeType":"Block","src":"8357:204:160","nodes":[],"statements":[{"assignments":[75674],"declarations":[{"constant":false,"id":75674,"mutability":"mutable","name":"$","nameLocation":"8383:1:160","nodeType":"VariableDeclaration","scope":75697,"src":"8367:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75673,"nodeType":"UserDefinedTypeName","pathNode":{"id":75672,"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":75677,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75675,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75676,"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":75683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75678,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8411:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75679,"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":75680,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75674,"src":"8425:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75681,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8437:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83569,"src":"8425:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8411:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75688,"nodeType":"IfStatement","src":"8407:99:160","trueBody":{"id":75687,"nodeType":"Block","src":"8456:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75684,"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":75685,"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":75686,"nodeType":"RevertStatement","src":"8470:25:160"}]}},{"expression":{"id":75695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75689,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75674,"src":"8515:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75692,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8527:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83569,"src":"8515:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75694,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75669,"src":"8547:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8515:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75696,"nodeType":"ExpressionStatement","src":"8515:39:160"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8311:19:160","parameters":{"id":75670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75669,"mutability":"mutable","name":"newRole","nameLocation":"8339:7:160","nodeType":"VariableDeclaration","scope":75698,"src":"8331:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75668,"name":"address","nodeType":"ElementaryTypeName","src":"8331:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8330:17:160"},"returnParameters":{"id":75671,"nodeType":"ParameterList","parameters":[],"src":"8357:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75752,"nodeType":"FunctionDefinition","src":"8617:405:160","nodes":[],"body":{"id":75751,"nodeType":"Block","src":"8654:368:160","nodes":[],"statements":[{"assignments":[75703],"declarations":[{"constant":false,"id":75703,"mutability":"mutable","name":"$","nameLocation":"8680:1:160","nodeType":"VariableDeclaration","scope":75751,"src":"8664:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75702,"nodeType":"UserDefinedTypeName","pathNode":{"id":75701,"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":75706,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75704,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75705,"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":75716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8709:61:160","subExpression":{"arguments":[{"expression":{"id":75713,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8759:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75714,"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":75708,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75703,"src":"8720:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75709,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:16:160","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":83555,"src":"8720:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75707,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"8710:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":75711,"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":75712,"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":75715,"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":75721,"nodeType":"IfStatement","src":"8705:121:160","trueBody":{"id":75720,"nodeType":"Block","src":"8772:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75717,"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":75718,"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":75719,"nodeType":"RevertStatement","src":"8786:29:160"}]}},{"condition":{"id":75735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8839:77:160","subExpression":{"arguments":[{"expression":{"id":75728,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8890:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75729,"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":75732,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8910:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77318","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77318","typeString":"contract Middleware"}],"id":75731,"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":75730,"name":"address","nodeType":"ElementaryTypeName","src":"8902:7:160","typeDescriptions":{}}},"id":75733,"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":75723,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75703,"src":"8854:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75724,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8866:12:160","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":83561,"src":"8854:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75722,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"8840:13:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$66120_$","typeString":"type(contract IOptInService)"}},"id":75726,"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":75727,"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":75734,"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":75740,"nodeType":"IfStatement","src":"8835:137:160","trueBody":{"id":75739,"nodeType":"Block","src":"8918:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75736,"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":75737,"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":75738,"nodeType":"RevertStatement","src":"8932:29:160"}]}},{"expression":{"arguments":[{"expression":{"id":75746,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9001:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75747,"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":75748,"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":75741,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75703,"src":"8982:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75744,"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":75745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8994:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84548,"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":75749,"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":75750,"nodeType":"ExpressionStatement","src":"8982:33:160"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8626:16:160","parameters":{"id":75699,"nodeType":"ParameterList","parameters":[],"src":"8642:2:160"},"returnParameters":{"id":75700,"nodeType":"ParameterList","parameters":[],"src":"8654:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75764,"nodeType":"FunctionDefinition","src":"9028:93:160","nodes":[],"body":{"id":75763,"nodeType":"Block","src":"9064:57:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75759,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9103:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75760,"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":75755,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75756,"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":75757,"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":75758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9095:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84642,"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":75761,"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":75762,"nodeType":"ExpressionStatement","src":"9074:40:160"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"9037:15:160","parameters":{"id":75753,"nodeType":"ParameterList","parameters":[],"src":"9052:2:160"},"returnParameters":{"id":75754,"nodeType":"ParameterList","parameters":[],"src":"9064:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75776,"nodeType":"FunctionDefinition","src":"9127:91:160","nodes":[],"body":{"id":75775,"nodeType":"Block","src":"9162:56:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75771,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9200:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75772,"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":75767,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75768,"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":75769,"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":75770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9193:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84595,"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":75773,"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":75774,"nodeType":"ExpressionStatement","src":"9172:39:160"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9136:14:160","parameters":{"id":75765,"nodeType":"ParameterList","parameters":[],"src":"9150:2:160"},"returnParameters":{"id":75766,"nodeType":"ParameterList","parameters":[],"src":"9162:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75821,"nodeType":"FunctionDefinition","src":"9224:362:160","nodes":[],"body":{"id":75820,"nodeType":"Block","src":"9279:307:160","nodes":[],"statements":[{"assignments":[75783],"declarations":[{"constant":false,"id":75783,"mutability":"mutable","name":"$","nameLocation":"9305:1:160","nodeType":"VariableDeclaration","scope":75820,"src":"9289:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75782,"nodeType":"UserDefinedTypeName","pathNode":{"id":75781,"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":75786,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75784,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75785,"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,75788],"declarations":[null,{"constant":false,"id":75788,"mutability":"mutable","name":"disabledTime","nameLocation":"9340:12:160","nodeType":"VariableDeclaration","scope":75820,"src":"9333:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75787,"name":"uint48","nodeType":"ElementaryTypeName","src":"9333:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75794,"initialValue":{"arguments":[{"id":75792,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75778,"src":"9377:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75789,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"9356:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75790,"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":75791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9368:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84701,"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":75793,"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":75806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75795,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75788,"src":"9401:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75796,"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":75805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75798,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"9422:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":75799,"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":75800,"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":75804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75801,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75788,"src":"9441:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75802,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"9456:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75803,"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":75811,"nodeType":"IfStatement","src":"9397:144:160","trueBody":{"id":75810,"nodeType":"Block","src":"9479:62:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75807,"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":75808,"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":75809,"nodeType":"RevertStatement","src":"9493:37:160"}]}},{"expression":{"arguments":[{"id":75817,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75778,"src":"9570:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75812,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"9551:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75815,"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":75816,"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":75818,"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":75819,"nodeType":"ExpressionStatement","src":"9551:28:160"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9233:18:160","parameters":{"id":75779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75778,"mutability":"mutable","name":"operator","nameLocation":"9260:8:160","nodeType":"VariableDeclaration","scope":75821,"src":"9252:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75777,"name":"address","nodeType":"ElementaryTypeName","src":"9252:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9251:18:160"},"returnParameters":{"id":75780,"nodeType":"ParameterList","parameters":[],"src":"9279:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75879,"nodeType":"FunctionDefinition","src":"9592:494:160","nodes":[],"body":{"id":75878,"nodeType":"Block","src":"9699:387:160","nodes":[],"statements":[{"assignments":[75834],"declarations":[{"constant":false,"id":75834,"mutability":"mutable","name":"$","nameLocation":"9725:1:160","nodeType":"VariableDeclaration","scope":75878,"src":"9709:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75833,"nodeType":"UserDefinedTypeName","pathNode":{"id":75832,"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":75837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75835,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75836,"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":75842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75838,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9754:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75839,"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":75840,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75834,"src":"9768:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75841,"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":75847,"nodeType":"IfStatement","src":"9750:71:160","trueBody":{"id":75846,"nodeType":"Block","src":"9778:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75843,"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":75844,"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":75845,"nodeType":"RevertStatement","src":"9792:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75848,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75823,"src":"9835:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75849,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75834,"src":"9844:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75850,"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":75856,"nodeType":"IfStatement","src":"9831:78:160","trueBody":{"id":75855,"nodeType":"Block","src":"9858:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75852,"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":75853,"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":75854,"nodeType":"RevertStatement","src":"9872:26:160"}]}},{"expression":{"arguments":[{"expression":{"id":75863,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75834,"src":"9990:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75864,"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":75865,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75823,"src":"10000:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75866,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75825,"src":"10007:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75867,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75827,"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":75858,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75834,"src":"9943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75859,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9955:15:160","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":83565,"src":"9943:27:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75857,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"9919:23:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$71798_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":75861,"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":75862,"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":75868,"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":75869,"nodeType":"ExpressionStatement","src":"9919:101:160"},{"expression":{"arguments":[{"arguments":[{"id":75873,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75825,"src":"10065:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75874,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75827,"src":"10073:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75871,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10048:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75872,"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":75875,"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":75870,"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":75876,"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":75831,"id":75877,"nodeType":"Return","src":"10031:48:160"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9601:25:160","parameters":{"id":75828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75823,"mutability":"mutable","name":"token","nameLocation":"9635:5:160","nodeType":"VariableDeclaration","scope":75879,"src":"9627:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75822,"name":"address","nodeType":"ElementaryTypeName","src":"9627:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75825,"mutability":"mutable","name":"amount","nameLocation":"9650:6:160","nodeType":"VariableDeclaration","scope":75879,"src":"9642:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75824,"name":"uint256","nodeType":"ElementaryTypeName","src":"9642:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75827,"mutability":"mutable","name":"root","nameLocation":"9666:4:160","nodeType":"VariableDeclaration","scope":75879,"src":"9658:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9658:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9626:45:160"},"returnParameters":{"id":75831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75879,"src":"9690:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75829,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9690:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9689:9:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76027,"nodeType":"FunctionDefinition","src":"10092:1224:160","nodes":[],"body":{"id":76026,"nodeType":"Block","src":"10239:1077:160","nodes":[],"statements":[{"assignments":[75891],"declarations":[{"constant":false,"id":75891,"mutability":"mutable","name":"$","nameLocation":"10265:1:160","nodeType":"VariableDeclaration","scope":76026,"src":"10249:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75890,"nodeType":"UserDefinedTypeName","pathNode":{"id":75889,"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":75894,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75892,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":75893,"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":75899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75895,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10294:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75896,"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":75897,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75891,"src":"10308:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75898,"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":75904,"nodeType":"IfStatement","src":"10290:71:160","trueBody":{"id":75903,"nodeType":"Block","src":"10318:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75900,"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":75901,"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":75902,"nodeType":"RevertStatement","src":"10332:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75905,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75882,"src":"10375:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10387:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83390,"src":"10375:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75907,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75891,"src":"10396:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75908,"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":75914,"nodeType":"IfStatement","src":"10371:90:160","trueBody":{"id":75913,"nodeType":"Block","src":"10410:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75910,"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":75911,"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":75912,"nodeType":"RevertStatement","src":"10424:26:160"}]}},{"assignments":[75916],"declarations":[{"constant":false,"id":75916,"mutability":"mutable","name":"distributionBytes","nameLocation":"10484:17:160","nodeType":"VariableDeclaration","scope":76026,"src":"10471:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75915,"name":"bytes","nodeType":"ElementaryTypeName","src":"10471:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75917,"nodeType":"VariableDeclarationStatement","src":"10471:30:160"},{"body":{"id":76009,"nodeType":"Block","src":"10573:615:160","statements":[{"assignments":[75934],"declarations":[{"constant":false,"id":75934,"mutability":"mutable","name":"rewards","nameLocation":"10613:7:160","nodeType":"VariableDeclaration","scope":76009,"src":"10587:33:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83397_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":75933,"nodeType":"UserDefinedTypeName","pathNode":{"id":75932,"name":"Gear.StakerRewards","nameLocations":["10587:4:160","10592:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":83397,"src":"10587:18:160"},"referencedDeclaration":83397,"src":"10587:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83397_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":75939,"initialValue":{"baseExpression":{"expression":{"id":75935,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75882,"src":"10623:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10635:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83386,"src":"10623:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83397_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75938,"indexExpression":{"id":75937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75919,"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_$83397_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10587:63:160"},{"condition":{"id":75946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10669:33:160","subExpression":{"arguments":[{"expression":{"id":75943,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75934,"src":"10688:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83397_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10696:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83394,"src":"10688:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75940,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75891,"src":"10670:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75941,"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":75942,"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":75945,"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":75951,"nodeType":"IfStatement","src":"10665:99:160","trueBody":{"id":75950,"nodeType":"Block","src":"10704:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75947,"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":75948,"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":75949,"nodeType":"RevertStatement","src":"10722:27:160"}]}},{"assignments":[75953],"declarations":[{"constant":false,"id":75953,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10786:14:160","nodeType":"VariableDeclaration","scope":76009,"src":"10778:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75952,"name":"address","nodeType":"ElementaryTypeName","src":"10778:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75963,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":75959,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75934,"src":"10834:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83397_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10842:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83394,"src":"10834:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75956,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75891,"src":"10811:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75957,"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":75958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10820:13:160","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":84722,"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":75961,"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":75955,"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":75954,"name":"address","nodeType":"ElementaryTypeName","src":"10803:7:160","typeDescriptions":{}}},"id":75962,"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":[75965],"declarations":[{"constant":false,"id":75965,"mutability":"mutable","name":"data","nameLocation":"10877:4:160","nodeType":"VariableDeclaration","scope":76009,"src":"10864:17:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75964,"name":"bytes","nodeType":"ElementaryTypeName","src":"10864:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75980,"initialValue":{"arguments":[{"id":75968,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75884,"src":"10895:9:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":75969,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75891,"src":"10906:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75970,"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":75973,"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":75972,"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":75971,"name":"bytes","nodeType":"ElementaryTypeName","src":"10921:5:160","typeDescriptions":{}}},"id":75974,"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":75977,"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":75976,"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":75975,"name":"bytes","nodeType":"ElementaryTypeName","src":"10932:5:160","typeDescriptions":{}}},"id":75978,"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":75966,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10884:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75967,"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":75979,"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":75985,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75891,"src":"11012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75986,"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":75987,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75882,"src":"11022:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11034:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83390,"src":"11022:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75989,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75934,"src":"11041:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83397_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11049:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83396,"src":"11041:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75991,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75965,"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":75982,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75953,"src":"10978:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75981,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"10956:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":75983,"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":75984,"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":75992,"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":75993,"nodeType":"ExpressionStatement","src":"10956:106:160"},{"expression":{"id":76007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75994,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75916,"src":"11077:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75998,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75916,"src":"11110:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":76001,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75934,"src":"11146:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83397_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":76002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11154:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83394,"src":"11146:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76003,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75934,"src":"11161:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83397_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":76004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11169:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83396,"src":"11161:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11129:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76000,"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":76005,"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":75996,"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":75995,"name":"bytes","nodeType":"ElementaryTypeName","src":"11097:5:160","typeDescriptions":{}}},"id":75997,"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":76006,"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":76008,"nodeType":"ExpressionStatement","src":"11077:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75922,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75919,"src":"10531:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":75923,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75882,"src":"10535:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10547:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83386,"src":"10535:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83397_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75925,"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":76010,"initializationExpression":{"assignments":[75919],"declarations":[{"constant":false,"id":75919,"mutability":"mutable","name":"i","nameLocation":"10524:1:160","nodeType":"VariableDeclaration","scope":76010,"src":"10516:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75918,"name":"uint256","nodeType":"ElementaryTypeName","src":"10516:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75921,"initialValue":{"hexValue":"30","id":75920,"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":75928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10568:3:160","subExpression":{"id":75927,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75919,"src":"10570:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75929,"nodeType":"ExpressionStatement","src":"10568:3:160"},"nodeType":"ForStatement","src":"10511:677:160"},{"expression":{"arguments":[{"arguments":[{"id":76015,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75916,"src":"11228:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":76018,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75882,"src":"11264:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":76019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11276:11:160","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83388,"src":"11264:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76020,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75882,"src":"11289:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":76021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11301:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83390,"src":"11289:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":76016,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11247:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76017,"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":76022,"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":76013,"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":76012,"name":"bytes","nodeType":"ElementaryTypeName","src":"11215:5:160","typeDescriptions":{}}},"id":76014,"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":76023,"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":76011,"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":76024,"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":75888,"id":76025,"nodeType":"Return","src":"11198:111:160"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10101:23:160","parameters":{"id":75885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75882,"mutability":"mutable","name":"_commitment","nameLocation":"10161:11:160","nodeType":"VariableDeclaration","scope":76027,"src":"10125:47:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":75881,"nodeType":"UserDefinedTypeName","pathNode":{"id":75880,"name":"Gear.StakerRewardsCommitment","nameLocations":["10125:4:160","10130:23:160"],"nodeType":"IdentifierPath","referencedDeclaration":83391,"src":"10125:28:160"},"referencedDeclaration":83391,"src":"10125:28:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":75884,"mutability":"mutable","name":"timestamp","nameLocation":"10181:9:160","nodeType":"VariableDeclaration","scope":76027,"src":"10174:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75883,"name":"uint48","nodeType":"ElementaryTypeName","src":"10174:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10124:67:160"},"returnParameters":{"id":75888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76027,"src":"10226:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75886,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10226:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10225:9:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76058,"nodeType":"FunctionDefinition","src":"11322:236:160","nodes":[],"body":{"id":76057,"nodeType":"Block","src":"11407:151:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76038,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76029,"src":"11432:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76037,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77134,"src":"11417:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76039,"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":76040,"nodeType":"ExpressionStatement","src":"11417:22:160"},{"expression":{"arguments":[{"id":76042,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76029,"src":"11472:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76043,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76031,"src":"11480:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76041,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77181,"src":"11449:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":76044,"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":76045,"nodeType":"ExpressionStatement","src":"11449:40:160"},{"expression":{"arguments":[{"id":76050,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76029,"src":"11525:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76053,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76031,"src":"11541:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76052,"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":76051,"name":"uint160","nodeType":"ElementaryTypeName","src":"11533:7:160","typeDescriptions":{}}},"id":76054,"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":76046,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76047,"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":76048,"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":76049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11518:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84548,"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":76055,"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":76056,"nodeType":"ExpressionStatement","src":"11500:51:160"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76034,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76029,"src":"11399:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76035,"kind":"modifierInvocation","modifierName":{"id":76033,"name":"vaultOwner","nameLocations":["11388:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77297,"src":"11388:10:160"},"nodeType":"ModifierInvocation","src":"11388:18:160"}],"name":"registerVault","nameLocation":"11331:13:160","parameters":{"id":76032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76029,"mutability":"mutable","name":"_vault","nameLocation":"11353:6:160","nodeType":"VariableDeclaration","scope":76058,"src":"11345:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76028,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76031,"mutability":"mutable","name":"_rewards","nameLocation":"11369:8:160","nodeType":"VariableDeclaration","scope":76058,"src":"11361:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76030,"name":"address","nodeType":"ElementaryTypeName","src":"11361:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11344:34:160"},"returnParameters":{"id":76036,"nodeType":"ParameterList","parameters":[],"src":"11407:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76074,"nodeType":"FunctionDefinition","src":"11564:113:160","nodes":[],"body":{"id":76073,"nodeType":"Block","src":"11628:49:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76070,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"11664:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76066,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76067,"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":76068,"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":76069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11656:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84642,"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":76071,"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":76072,"nodeType":"ExpressionStatement","src":"11638:32:160"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76063,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"11621:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76064,"kind":"modifierInvocation","modifierName":{"id":76062,"name":"vaultOwner","nameLocations":["11610:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77297,"src":"11610:10:160"},"nodeType":"ModifierInvocation","src":"11610:17:160"}],"name":"disableVault","nameLocation":"11573:12:160","parameters":{"id":76061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76060,"mutability":"mutable","name":"vault","nameLocation":"11594:5:160","nodeType":"VariableDeclaration","scope":76074,"src":"11586:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76059,"name":"address","nodeType":"ElementaryTypeName","src":"11586:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11585:15:160"},"returnParameters":{"id":76065,"nodeType":"ParameterList","parameters":[],"src":"11628:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76090,"nodeType":"FunctionDefinition","src":"11683:111:160","nodes":[],"body":{"id":76089,"nodeType":"Block","src":"11746:48:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76086,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76076,"src":"11781:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76082,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76083,"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":76084,"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":76085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11774:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84595,"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":76087,"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":76088,"nodeType":"ExpressionStatement","src":"11756:31:160"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76079,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76076,"src":"11739:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76080,"kind":"modifierInvocation","modifierName":{"id":76078,"name":"vaultOwner","nameLocations":["11728:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77297,"src":"11728:10:160"},"nodeType":"ModifierInvocation","src":"11728:17:160"}],"name":"enableVault","nameLocation":"11692:11:160","parameters":{"id":76077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76076,"mutability":"mutable","name":"vault","nameLocation":"11712:5:160","nodeType":"VariableDeclaration","scope":76090,"src":"11704:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76075,"name":"address","nodeType":"ElementaryTypeName","src":"11704:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11703:15:160"},"returnParameters":{"id":76081,"nodeType":"ParameterList","parameters":[],"src":"11746:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76138,"nodeType":"FunctionDefinition","src":"11800:355:160","nodes":[],"body":{"id":76137,"nodeType":"Block","src":"11867:288:160","nodes":[],"statements":[{"assignments":[76100],"declarations":[{"constant":false,"id":76100,"mutability":"mutable","name":"$","nameLocation":"11893:1:160","nodeType":"VariableDeclaration","scope":76137,"src":"11877:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76099,"nodeType":"UserDefinedTypeName","pathNode":{"id":76098,"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":76103,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76101,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76102,"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,76105],"declarations":[null,{"constant":false,"id":76105,"mutability":"mutable","name":"disabledTime","nameLocation":"11927:12:160","nodeType":"VariableDeclaration","scope":76137,"src":"11920:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76104,"name":"uint48","nodeType":"ElementaryTypeName","src":"11920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76111,"initialValue":{"arguments":[{"id":76109,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76092,"src":"11961:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76106,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"11943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76107,"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":76108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11952:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84701,"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":76110,"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":76123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76112,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76105,"src":"11982:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76113,"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":76122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76115,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"12003:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":76116,"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":76117,"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":76121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76118,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76105,"src":"12022:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76119,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"12037:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76120,"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":76128,"nodeType":"IfStatement","src":"11978:138:160","trueBody":{"id":76127,"nodeType":"Block","src":"12057:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76124,"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":76125,"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":76126,"nodeType":"RevertStatement","src":"12071:34:160"}]}},{"expression":{"arguments":[{"id":76134,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76092,"src":"12142:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76129,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"12126:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76132,"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":76133,"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":76135,"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":76136,"nodeType":"ExpressionStatement","src":"12126:22:160"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76095,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76092,"src":"11860:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76096,"kind":"modifierInvocation","modifierName":{"id":76094,"name":"vaultOwner","nameLocations":["11849:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77297,"src":"11849:10:160"},"nodeType":"ModifierInvocation","src":"11849:17:160"}],"name":"unregisterVault","nameLocation":"11809:15:160","parameters":{"id":76093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76092,"mutability":"mutable","name":"vault","nameLocation":"11833:5:160","nodeType":"VariableDeclaration","scope":76138,"src":"11825:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76091,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11824:15:160"},"returnParameters":{"id":76097,"nodeType":"ParameterList","parameters":[],"src":"11867:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76334,"nodeType":"FunctionDefinition","src":"12161:1642:160","nodes":[],"body":{"id":76333,"nodeType":"Block","src":"12260:1543:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76149,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12278:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76150,"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":76152,"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":76153,"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":76148,"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":76154,"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":76155,"nodeType":"ExpressionStatement","src":"12270:64:160"},{"assignments":[76160,76163],"declarations":[{"constant":false,"id":76160,"mutability":"mutable","name":"activeOperators","nameLocation":"12363:15:160","nodeType":"VariableDeclaration","scope":76333,"src":"12346:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76158,"name":"address","nodeType":"ElementaryTypeName","src":"12346:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76159,"nodeType":"ArrayTypeName","src":"12346:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76163,"mutability":"mutable","name":"stakes","nameLocation":"12397:6:160","nodeType":"VariableDeclaration","scope":76333,"src":"12380:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76161,"name":"uint256","nodeType":"ElementaryTypeName","src":"12380:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76162,"nodeType":"ArrayTypeName","src":"12380:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":76167,"initialValue":{"arguments":[{"id":76165,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"12433:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76164,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76477,"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":76166,"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":76171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76168,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12451:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76169,"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":76170,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12477:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76175,"nodeType":"IfStatement","src":"12447:92:160","trueBody":{"id":76174,"nodeType":"Block","src":"12492:47:160","statements":[{"expression":{"id":76172,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12513:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76147,"id":76173,"nodeType":"Return","src":"12506:22:160"}]}},{"assignments":[76177],"declarations":[{"constant":false,"id":76177,"mutability":"mutable","name":"n","nameLocation":"12591:1:160","nodeType":"VariableDeclaration","scope":76333,"src":"12583:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76176,"name":"uint256","nodeType":"ElementaryTypeName","src":"12583:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76180,"initialValue":{"expression":{"id":76178,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12595:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76179,"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":76258,"nodeType":"Block","src":"12659:336:160","statements":[{"body":{"id":76256,"nodeType":"Block","src":"12713:272:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76205,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"12735:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76207,"indexExpression":{"id":76206,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"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":76208,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"12747:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76212,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76209,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"src":"12754:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76210,"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":76255,"nodeType":"IfStatement","src":"12731:240:160","trueBody":{"id":76254,"nodeType":"Block","src":"12762:209:160","statements":[{"expression":{"id":76232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76214,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"12785:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76216,"indexExpression":{"id":76215,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"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":76217,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"12796:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76221,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76218,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"src":"12803:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76219,"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":76222,"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":76223,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"12814:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76227,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76224,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"src":"12821:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76225,"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":76228,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"12829:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76230,"indexExpression":{"id":76229,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"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":76231,"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":76233,"nodeType":"ExpressionStatement","src":"12784:55:160"},{"expression":{"id":76252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76234,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12862:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76236,"indexExpression":{"id":76235,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"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":76237,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12882:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76241,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76238,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"src":"12898:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76239,"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":76242,"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":76243,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12909:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76247,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76244,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"src":"12925:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76245,"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":76248,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12933:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76250,"indexExpression":{"id":76249,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"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":76251,"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":76253,"nodeType":"ExpressionStatement","src":"12861:91:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76195,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"src":"12693:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76196,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76177,"src":"12697: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":"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":76199,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76182,"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":76257,"initializationExpression":{"assignments":[76192],"declarations":[{"constant":false,"id":76192,"mutability":"mutable","name":"j","nameLocation":"12686:1:160","nodeType":"VariableDeclaration","scope":76257,"src":"12678:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76191,"name":"uint256","nodeType":"ElementaryTypeName","src":"12678:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76194,"initialValue":{"hexValue":"30","id":76193,"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":76203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12708:3:160","subExpression":{"id":76202,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"src":"12708:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76204,"nodeType":"ExpressionStatement","src":"12708:3:160"},"nodeType":"ForStatement","src":"12673:312:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76185,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76182,"src":"12647:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76186,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76177,"src":"12651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12647:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76259,"initializationExpression":{"assignments":[76182],"declarations":[{"constant":false,"id":76182,"mutability":"mutable","name":"i","nameLocation":"12640:1:160","nodeType":"VariableDeclaration","scope":76259,"src":"12632:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76181,"name":"uint256","nodeType":"ElementaryTypeName","src":"12632:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76184,"initialValue":{"hexValue":"30","id":76183,"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":76189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:160","subExpression":{"id":76188,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76182,"src":"12654:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76190,"nodeType":"ExpressionStatement","src":"12654:3:160"},"nodeType":"ForStatement","src":"12627:368:160"},{"assignments":[76261],"declarations":[{"constant":false,"id":76261,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13070:14:160","nodeType":"VariableDeclaration","scope":76333,"src":"13062:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76260,"name":"uint256","nodeType":"ElementaryTypeName","src":"13062:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76263,"initialValue":{"hexValue":"31","id":76262,"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":[76265],"declarations":[{"constant":false,"id":76265,"mutability":"mutable","name":"lastStake","nameLocation":"13106:9:160","nodeType":"VariableDeclaration","scope":76333,"src":"13098:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76264,"name":"uint256","nodeType":"ElementaryTypeName","src":"13098:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76271,"initialValue":{"baseExpression":{"id":76266,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"13118:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76270,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76267,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"13125:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76268,"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":76295,"nodeType":"Block","src":"13218:123:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76283,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"13236:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76285,"indexExpression":{"id":76284,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76273,"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":76286,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76265,"src":"13249:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13236:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76290,"nodeType":"IfStatement","src":"13232:66:160","trueBody":{"id":76289,"nodeType":"Block","src":"13260:38:160","statements":[{"id":76288,"nodeType":"Break","src":"13278:5:160"}]}},{"expression":{"id":76293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76291,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76261,"src":"13311:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76292,"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":76294,"nodeType":"ExpressionStatement","src":"13311:19:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76273,"src":"13185:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76277,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"13189:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76278,"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":76296,"initializationExpression":{"assignments":[76273],"declarations":[{"constant":false,"id":76273,"mutability":"mutable","name":"i","nameLocation":"13166:1:160","nodeType":"VariableDeclaration","scope":76296,"src":"13158:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76272,"name":"uint256","nodeType":"ElementaryTypeName","src":"13158:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76275,"initialValue":{"id":76274,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"13170:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13158:25:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13213:3:160","subExpression":{"id":76280,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76273,"src":"13213:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76282,"nodeType":"ExpressionStatement","src":"13213:3:160"},"nodeType":"ForStatement","src":"13153:188:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76297,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76261,"src":"13355:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":76298,"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":76329,"nodeType":"IfStatement","src":"13351:316:160","trueBody":{"id":76328,"nodeType":"Block","src":"13375:292:160","statements":[{"assignments":[76301],"declarations":[{"constant":false,"id":76301,"mutability":"mutable","name":"randomIndex","nameLocation":"13486:11:160","nodeType":"VariableDeclaration","scope":76328,"src":"13478:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76300,"name":"uint256","nodeType":"ElementaryTypeName","src":"13478:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":76307,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"13535:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":76305,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13518:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76306,"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":76308,"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":76304,"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":76309,"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":76303,"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":76302,"name":"uint256","nodeType":"ElementaryTypeName","src":"13500:7:160","typeDescriptions":{}}},"id":76310,"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":76311,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76261,"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":76326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76314,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"13571:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76318,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76315,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"13587:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76316,"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":76319,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"13608:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76325,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76320,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"13624:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76321,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76301,"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":76323,"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":76327,"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":76160,"isOffset":false,"isSlot":false,"src":"13723:15:160","valueSize":1},{"declaration":76142,"isOffset":false,"isSlot":false,"src":"13740:13:160","valueSize":1}],"flags":["memory-safe"],"id":76330,"nodeType":"InlineAssembly","src":"13677:87:160"},{"expression":{"id":76331,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"13781:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76147,"id":76332,"nodeType":"Return","src":"13774:22:160"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12170:14:160","parameters":{"id":76143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76140,"mutability":"mutable","name":"ts","nameLocation":"12192:2:160","nodeType":"VariableDeclaration","scope":76334,"src":"12185:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76139,"name":"uint48","nodeType":"ElementaryTypeName","src":"12185:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76142,"mutability":"mutable","name":"maxValidators","nameLocation":"12204:13:160","nodeType":"VariableDeclaration","scope":76334,"src":"12196:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76141,"name":"uint256","nodeType":"ElementaryTypeName","src":"12196:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12184:34:160"},"returnParameters":{"id":76147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76334,"src":"12242:16:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76144,"name":"address","nodeType":"ElementaryTypeName","src":"12242:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76145,"nodeType":"ArrayTypeName","src":"12242:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12241:18:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76375,"nodeType":"FunctionDefinition","src":"13809:372:160","nodes":[],"body":{"id":76374,"nodeType":"Block","src":"13923:258:160","nodes":[],"statements":[{"assignments":[76347,76349],"declarations":[{"constant":false,"id":76347,"mutability":"mutable","name":"enabledTime","nameLocation":"13941:11:160","nodeType":"VariableDeclaration","scope":76374,"src":"13934:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76346,"name":"uint48","nodeType":"ElementaryTypeName","src":"13934:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76349,"mutability":"mutable","name":"disabledTime","nameLocation":"13961:12:160","nodeType":"VariableDeclaration","scope":76374,"src":"13954:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76348,"name":"uint48","nodeType":"ElementaryTypeName","src":"13954:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76356,"initialValue":{"arguments":[{"id":76354,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76336,"src":"14007:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76350,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76351,"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":76352,"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":76353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13998:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84701,"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":76355,"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":76362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14030:44:160","subExpression":{"arguments":[{"id":76358,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"14044:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76359,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76349,"src":"14057:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76360,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"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":76357,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"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":76361,"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":76366,"nodeType":"IfStatement","src":"14026:83:160","trueBody":{"id":76365,"nodeType":"Block","src":"14076:33:160","statements":[{"expression":{"hexValue":"30","id":76363,"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":76345,"id":76364,"nodeType":"Return","src":"14090:8:160"}]}},{"expression":{"id":76372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76367,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76344,"src":"14119:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76369,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76336,"src":"14161:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76370,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"14171:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76368,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76733,"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":76371,"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":76373,"nodeType":"ExpressionStatement","src":"14119:55:160"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76341,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"13895:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76342,"kind":"modifierInvocation","modifierName":{"id":76340,"name":"validTimestamp","nameLocations":["13880:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77191,"src":"13880:14:160"},"nodeType":"ModifierInvocation","src":"13880:18:160"}],"name":"getOperatorStakeAt","nameLocation":"13818:18:160","parameters":{"id":76339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76336,"mutability":"mutable","name":"operator","nameLocation":"13845:8:160","nodeType":"VariableDeclaration","scope":76375,"src":"13837:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76335,"name":"address","nodeType":"ElementaryTypeName","src":"13837:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76338,"mutability":"mutable","name":"ts","nameLocation":"13862:2:160","nodeType":"VariableDeclaration","scope":76375,"src":"13855:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76337,"name":"uint48","nodeType":"ElementaryTypeName","src":"13855:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13836:29:160"},"returnParameters":{"id":76345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76344,"mutability":"mutable","name":"stake","nameLocation":"13916:5:160","nodeType":"VariableDeclaration","scope":76375,"src":"13908:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76343,"name":"uint256","nodeType":"ElementaryTypeName","src":"13908:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13907:15:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76477,"nodeType":"FunctionDefinition","src":"14224:940:160","nodes":[],"body":{"id":76476,"nodeType":"Block","src":"14405:759:160","nodes":[],"statements":[{"assignments":[76391],"declarations":[{"constant":false,"id":76391,"mutability":"mutable","name":"$","nameLocation":"14431:1:160","nodeType":"VariableDeclaration","scope":76476,"src":"14415:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76390,"nodeType":"UserDefinedTypeName","pathNode":{"id":76389,"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":76394,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76392,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76393,"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":76404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76395,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"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":76399,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76391,"src":"14487: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":"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":76401,"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":76402,"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":76398,"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":76396,"name":"address","nodeType":"ElementaryTypeName","src":"14477:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76397,"nodeType":"ArrayTypeName","src":"14477:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76403,"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":76405,"nodeType":"ExpressionStatement","src":"14455:53:160"},{"expression":{"id":76415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76406,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76387,"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":76410,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76391,"src":"14541:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76411,"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":76412,"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":76413,"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":76409,"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":76407,"name":"uint256","nodeType":"ElementaryTypeName","src":"14531:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76408,"nodeType":"ArrayTypeName","src":"14531:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":76414,"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":76416,"nodeType":"ExpressionStatement","src":"14518:44:160"},{"assignments":[76418],"declarations":[{"constant":false,"id":76418,"mutability":"mutable","name":"operatorIdx","nameLocation":"14581:11:160","nodeType":"VariableDeclaration","scope":76476,"src":"14573:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76417,"name":"uint256","nodeType":"ElementaryTypeName","src":"14573:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76420,"initialValue":{"hexValue":"30","id":76419,"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":76473,"nodeType":"Block","src":"14654:369:160","statements":[{"assignments":[76434,76436,76438],"declarations":[{"constant":false,"id":76434,"mutability":"mutable","name":"operator","nameLocation":"14677:8:160","nodeType":"VariableDeclaration","scope":76473,"src":"14669:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76433,"name":"address","nodeType":"ElementaryTypeName","src":"14669:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76436,"mutability":"mutable","name":"enabled","nameLocation":"14694:7:160","nodeType":"VariableDeclaration","scope":76473,"src":"14687:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76435,"name":"uint48","nodeType":"ElementaryTypeName","src":"14687:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76438,"mutability":"mutable","name":"disabled","nameLocation":"14710:8:160","nodeType":"VariableDeclaration","scope":76473,"src":"14703:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76437,"name":"uint48","nodeType":"ElementaryTypeName","src":"14703:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76444,"initialValue":{"arguments":[{"id":76442,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76422,"src":"14746:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76439,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76391,"src":"14722:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76440,"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":76441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14734:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84677,"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":76443,"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":76450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14767:36:160","subExpression":{"arguments":[{"id":76446,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76436,"src":"14781:7:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76447,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76438,"src":"14790:8:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76448,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"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":76445,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"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":76449,"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":76453,"nodeType":"IfStatement","src":"14763:83:160","trueBody":{"id":76452,"nodeType":"Block","src":"14805:41:160","statements":[{"id":76451,"nodeType":"Continue","src":"14823:8:160"}]}},{"expression":{"id":76458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76454,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"src":"14860:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76456,"indexExpression":{"id":76455,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76418,"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":76457,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76434,"src":"14891:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14860:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76459,"nodeType":"ExpressionStatement","src":"14860:39:160"},{"expression":{"id":76467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76460,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76387,"src":"14913:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76462,"indexExpression":{"id":76461,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76418,"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":76464,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76434,"src":"14969:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76465,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"14979:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76463,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76733,"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":76466,"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":76468,"nodeType":"ExpressionStatement","src":"14913:69:160"},{"expression":{"id":76471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76469,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76418,"src":"14996:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76470,"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":76472,"nodeType":"ExpressionStatement","src":"14996:16:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76424,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76422,"src":"14623:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76425,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76391,"src":"14627:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76426,"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":76427,"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":76428,"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":76474,"initializationExpression":{"assignments":[76422],"declarations":[{"constant":false,"id":76422,"mutability":"mutable","name":"i","nameLocation":"14620:1:160","nodeType":"VariableDeclaration","scope":76474,"src":"14612:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76421,"name":"uint256","nodeType":"ElementaryTypeName","src":"14612:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76423,"nodeType":"VariableDeclarationStatement","src":"14612:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14649:3:160","subExpression":{"id":76430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76422,"src":"14651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76432,"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":76384,"isOffset":false,"isSlot":false,"src":"15079:15:160","valueSize":1},{"declaration":76418,"isOffset":false,"isSlot":false,"src":"15096:11:160","valueSize":1},{"declaration":76418,"isOffset":false,"isSlot":false,"src":"15136:11:160","valueSize":1},{"declaration":76387,"isOffset":false,"isSlot":false,"src":"15128:6:160","valueSize":1}],"flags":["memory-safe"],"id":76475,"nodeType":"InlineAssembly","src":"15033:125:160"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76380,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"14321:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76381,"kind":"modifierInvocation","modifierName":{"id":76379,"name":"validTimestamp","nameLocations":["14306:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77191,"src":"14306:14:160"},"nodeType":"ModifierInvocation","src":"14306:18:160"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14233:25:160","parameters":{"id":76378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76377,"mutability":"mutable","name":"ts","nameLocation":"14266:2:160","nodeType":"VariableDeclaration","scope":76477,"src":"14259:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76376,"name":"uint48","nodeType":"ElementaryTypeName","src":"14259:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14258:11:160"},"returnParameters":{"id":76388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76384,"mutability":"mutable","name":"activeOperators","nameLocation":"14359:15:160","nodeType":"VariableDeclaration","scope":76477,"src":"14342:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76382,"name":"address","nodeType":"ElementaryTypeName","src":"14342:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76383,"nodeType":"ArrayTypeName","src":"14342:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76387,"mutability":"mutable","name":"stakes","nameLocation":"14393:6:160","nodeType":"VariableDeclaration","scope":76477,"src":"14376:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76385,"name":"uint256","nodeType":"ElementaryTypeName","src":"14376:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76386,"nodeType":"ArrayTypeName","src":"14376:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14341:59:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":76593,"nodeType":"FunctionDefinition","src":"15170:952:160","nodes":[],"body":{"id":76592,"nodeType":"Block","src":"15228:894:160","nodes":[],"statements":[{"assignments":[76486],"declarations":[{"constant":false,"id":76486,"mutability":"mutable","name":"$","nameLocation":"15254:1:160","nodeType":"VariableDeclaration","scope":76592,"src":"15238:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76485,"nodeType":"UserDefinedTypeName","pathNode":{"id":76484,"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":76489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76487,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76488,"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":76495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76490,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15283:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76491,"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":76492,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"15297:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76493,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83567,"src":"15297:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15283:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76500,"nodeType":"IfStatement","src":"15279:101:160","trueBody":{"id":76499,"nodeType":"Block","src":"15329:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76496,"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":76497,"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":76498,"nodeType":"RevertStatement","src":"15343:26:160"}]}},{"body":{"id":76590,"nodeType":"Block","src":"15428:688:160","statements":[{"assignments":[76513],"declarations":[{"constant":false,"id":76513,"mutability":"mutable","name":"slashData","nameLocation":"15461:9:160","nodeType":"VariableDeclaration","scope":76590,"src":"15442:28:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":76512,"nodeType":"UserDefinedTypeName","pathNode":{"id":76511,"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":76517,"initialValue":{"baseExpression":{"id":76514,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76481,"src":"15473:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76516,"indexExpression":{"id":76515,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76502,"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":76524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15498:41:160","subExpression":{"arguments":[{"expression":{"id":76521,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"15520:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76522,"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":76518,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"15499:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76519,"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":76520,"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":76523,"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":76529,"nodeType":"IfStatement","src":"15494:110:160","trueBody":{"id":76528,"nodeType":"Block","src":"15541:63:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76525,"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":76526,"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":76527,"nodeType":"RevertStatement","src":"15559:30:160"}]}},{"body":{"id":76588,"nodeType":"Block","src":"15668:438:160","statements":[{"assignments":[76543],"declarations":[{"constant":false,"id":76543,"mutability":"mutable","name":"vaultData","nameLocation":"15710:9:160","nodeType":"VariableDeclaration","scope":76588,"src":"15686:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":76542,"nodeType":"UserDefinedTypeName","pathNode":{"id":76541,"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":76548,"initialValue":{"baseExpression":{"expression":{"id":76544,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"15722:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76545,"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":76547,"indexExpression":{"id":76546,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76531,"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":76555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15764:35:160","subExpression":{"arguments":[{"expression":{"id":76552,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76543,"src":"15783:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76553,"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":76549,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"15765:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76550,"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":76551,"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":76554,"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":76560,"nodeType":"IfStatement","src":"15760:109:160","trueBody":{"id":76559,"nodeType":"Block","src":"15801:68:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76556,"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":76557,"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":76558,"nodeType":"RevertStatement","src":"15823:27:160"}]}},{"assignments":[76562],"declarations":[{"constant":false,"id":76562,"mutability":"mutable","name":"slasher","nameLocation":"15895:7:160","nodeType":"VariableDeclaration","scope":76588,"src":"15887:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76561,"name":"address","nodeType":"ElementaryTypeName","src":"15887:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76569,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76564,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76543,"src":"15912:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76565,"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":76563,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"15905:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76566,"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":76567,"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":76568,"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":76574,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"16012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76575,"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":76576,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"16026:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76577,"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":76578,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76543,"src":"16046:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76579,"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":76580,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"16064:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76581,"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":76584,"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":76583,"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":76582,"name":"bytes","nodeType":"ElementaryTypeName","src":"16082:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76585,"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":76571,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15969:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76570,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"15956:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76572,"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":76573,"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":76586,"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":76587,"nodeType":"ExpressionStatement","src":"15956:135:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76533,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76531,"src":"15634:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76534,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"15638:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76535,"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":76536,"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":76589,"initializationExpression":{"assignments":[76531],"declarations":[{"constant":false,"id":76531,"mutability":"mutable","name":"j","nameLocation":"15631:1:160","nodeType":"VariableDeclaration","scope":76589,"src":"15623:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76530,"name":"uint256","nodeType":"ElementaryTypeName","src":"15623:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76532,"nodeType":"VariableDeclarationStatement","src":"15623:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15663:3:160","subExpression":{"id":76538,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76531,"src":"15665:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76540,"nodeType":"ExpressionStatement","src":"15663:3:160"},"nodeType":"ForStatement","src":"15618:488:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76504,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76502,"src":"15406:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76505,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76481,"src":"15410:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76506,"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":76591,"initializationExpression":{"assignments":[76502],"declarations":[{"constant":false,"id":76502,"mutability":"mutable","name":"i","nameLocation":"15403:1:160","nodeType":"VariableDeclaration","scope":76591,"src":"15395:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76501,"name":"uint256","nodeType":"ElementaryTypeName","src":"15395:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76503,"nodeType":"VariableDeclarationStatement","src":"15395:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15423:3:160","subExpression":{"id":76508,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76502,"src":"15425:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76510,"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":76482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76481,"mutability":"mutable","name":"data","nameLocation":"15213:4:160","nodeType":"VariableDeclaration","scope":76593,"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":76479,"nodeType":"UserDefinedTypeName","pathNode":{"id":76478,"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":76480,"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":76483,"nodeType":"ParameterList","parameters":[],"src":"15228:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76662,"nodeType":"FunctionDefinition","src":"16128:528:160","nodes":[],"body":{"id":76661,"nodeType":"Block","src":"16195:461:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76600,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16209:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76601,"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":76602,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76603,"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":76604,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16244:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83569,"src":"16223:38:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16209:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76611,"nodeType":"IfStatement","src":"16205:108:160","trueBody":{"id":76610,"nodeType":"Block","src":"16263:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76607,"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":76608,"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":76609,"nodeType":"RevertStatement","src":"16277:25:160"}]}},{"body":{"id":76659,"nodeType":"Block","src":"16364:286:160","statements":[{"assignments":[76624],"declarations":[{"constant":false,"id":76624,"mutability":"mutable","name":"slash","nameLocation":"16403:5:160","nodeType":"VariableDeclaration","scope":76659,"src":"16378:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":76623,"nodeType":"UserDefinedTypeName","pathNode":{"id":76622,"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":76628,"initialValue":{"baseExpression":{"id":76625,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76597,"src":"16411:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76627,"indexExpression":{"id":76626,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76613,"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":76636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16440:40:160","subExpression":{"arguments":[{"expression":{"id":76633,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76624,"src":"16468:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76634,"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":76629,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76630,"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":76631,"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":76632,"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":76635,"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":76641,"nodeType":"IfStatement","src":"16436:106:160","trueBody":{"id":76640,"nodeType":"Block","src":"16482:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76637,"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":76638,"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":76639,"nodeType":"RevertStatement","src":"16500:27:160"}]}},{"expression":{"arguments":[{"expression":{"id":76651,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76624,"src":"16613:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76652,"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":76655,"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":76654,"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":76653,"name":"bytes","nodeType":"ElementaryTypeName","src":"16630:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76656,"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":76644,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76624,"src":"16576:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76645,"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":76643,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"16569:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76646,"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":76647,"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":76648,"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":76642,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"16556:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76649,"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":76650,"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":76657,"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":76658,"nodeType":"ExpressionStatement","src":"16556:83:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76613,"src":"16339:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76616,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76597,"src":"16343:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76617,"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":76660,"initializationExpression":{"assignments":[76613],"declarations":[{"constant":false,"id":76613,"mutability":"mutable","name":"i","nameLocation":"16336:1:160","nodeType":"VariableDeclaration","scope":76660,"src":"16328:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76612,"name":"uint256","nodeType":"ElementaryTypeName","src":"16328:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76614,"nodeType":"VariableDeclarationStatement","src":"16328:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16359:3:160","subExpression":{"id":76619,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76613,"src":"16361:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76621,"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":76598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76597,"mutability":"mutable","name":"slashes","nameLocation":"16177:7:160","nodeType":"VariableDeclaration","scope":76662,"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":76595,"nodeType":"UserDefinedTypeName","pathNode":{"id":76594,"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":76596,"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":76599,"nodeType":"ParameterList","parameters":[],"src":"16195:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76733,"nodeType":"FunctionDefinition","src":"16662:556:160","nodes":[],"body":{"id":76732,"nodeType":"Block","src":"16771:447:160","nodes":[],"statements":[{"assignments":[76673],"declarations":[{"constant":false,"id":76673,"mutability":"mutable","name":"$","nameLocation":"16797:1:160","nodeType":"VariableDeclaration","scope":76732,"src":"16781:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76672,"nodeType":"UserDefinedTypeName","pathNode":{"id":76671,"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":76676,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76674,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76675,"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":76730,"nodeType":"Block","src":"16865:347:160","statements":[{"assignments":[76690,76692,76694],"declarations":[{"constant":false,"id":76690,"mutability":"mutable","name":"vault","nameLocation":"16888:5:160","nodeType":"VariableDeclaration","scope":76730,"src":"16880:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76689,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76692,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16902:16:160","nodeType":"VariableDeclaration","scope":76730,"src":"16895:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76691,"name":"uint48","nodeType":"ElementaryTypeName","src":"16895:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76694,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16927:17:160","nodeType":"VariableDeclaration","scope":76730,"src":"16920:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76693,"name":"uint48","nodeType":"ElementaryTypeName","src":"16920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76700,"initialValue":{"arguments":[{"id":76698,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76678,"src":"16969:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76695,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76673,"src":"16948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76696,"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":76697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16957:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84677,"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":76699,"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":76706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16990:54:160","subExpression":{"arguments":[{"id":76702,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76692,"src":"17004:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76703,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76694,"src":"17022:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76704,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76666,"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":76701,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"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":76705,"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":76709,"nodeType":"IfStatement","src":"16986:101:160","trueBody":{"id":76708,"nodeType":"Block","src":"17046:41:160","statements":[{"id":76707,"nodeType":"Continue","src":"17064:8:160"}]}},{"expression":{"id":76728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76710,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76669,"src":"17101:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":76719,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76673,"src":"17160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76720,"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":76721,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76664,"src":"17174:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76722,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76666,"src":"17184:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76725,"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":76724,"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":76723,"name":"bytes","nodeType":"ElementaryTypeName","src":"17192:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76726,"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":76713,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76690,"src":"17132:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76712,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"17125:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76714,"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":76715,"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":76716,"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":76711,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"17110:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76717,"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":76718,"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":76727,"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":76729,"nodeType":"ExpressionStatement","src":"17101:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76680,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76678,"src":"16837:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76681,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76673,"src":"16841:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76682,"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":76683,"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":76684,"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":76731,"initializationExpression":{"assignments":[76678],"declarations":[{"constant":false,"id":76678,"mutability":"mutable","name":"i","nameLocation":"16834:1:160","nodeType":"VariableDeclaration","scope":76731,"src":"16826:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76677,"name":"uint256","nodeType":"ElementaryTypeName","src":"16826:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76679,"nodeType":"VariableDeclarationStatement","src":"16826:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16860:3:160","subExpression":{"id":76686,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76678,"src":"16862:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76688,"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":76667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76664,"mutability":"mutable","name":"operator","nameLocation":"16713:8:160","nodeType":"VariableDeclaration","scope":76733,"src":"16705:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76663,"name":"address","nodeType":"ElementaryTypeName","src":"16705:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76666,"mutability":"mutable","name":"ts","nameLocation":"16730:2:160","nodeType":"VariableDeclaration","scope":76733,"src":"16723:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76665,"name":"uint48","nodeType":"ElementaryTypeName","src":"16723:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16704:29:160"},"returnParameters":{"id":76670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76669,"mutability":"mutable","name":"stake","nameLocation":"16764:5:160","nodeType":"VariableDeclaration","scope":76733,"src":"16756:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76668,"name":"uint256","nodeType":"ElementaryTypeName","src":"16756:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16755:15:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76762,"nodeType":"FunctionDefinition","src":"17224:208:160","nodes":[],"body":{"id":76761,"nodeType":"Block","src":"17326:106:160","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76744,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76735,"src":"17343:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76745,"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":76749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76747,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76735,"src":"17363:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76748,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76739,"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":76757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76751,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"17385:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76752,"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":76756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76754,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76737,"src":"17406:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76755,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76739,"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":76758,"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":76743,"id":76760,"nodeType":"Return","src":"17336:89:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17233:12:160","parameters":{"id":76740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76735,"mutability":"mutable","name":"enabledTime","nameLocation":"17253:11:160","nodeType":"VariableDeclaration","scope":76762,"src":"17246:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76734,"name":"uint48","nodeType":"ElementaryTypeName","src":"17246:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76737,"mutability":"mutable","name":"disabledTime","nameLocation":"17273:12:160","nodeType":"VariableDeclaration","scope":76762,"src":"17266:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76736,"name":"uint48","nodeType":"ElementaryTypeName","src":"17266:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76739,"mutability":"mutable","name":"ts","nameLocation":"17294:2:160","nodeType":"VariableDeclaration","scope":76762,"src":"17287:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76738,"name":"uint48","nodeType":"ElementaryTypeName","src":"17287:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17245:52:160"},"returnParameters":{"id":76743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76762,"src":"17320:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76741,"name":"bool","nodeType":"ElementaryTypeName","src":"17320:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17319:6:160"},"scope":77318,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76779,"nodeType":"FunctionDefinition","src":"17477:154:160","nodes":[],"body":{"id":76778,"nodeType":"Block","src":"17533:98:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76767,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76764,"src":"17547:4:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76770,"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":76769,"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":76768,"name":"address","nodeType":"ElementaryTypeName","src":"17555:7:160","typeDescriptions":{}}},"id":76771,"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":76777,"nodeType":"IfStatement","src":"17543:82:160","trueBody":{"id":76776,"nodeType":"Block","src":"17567:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76773,"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":76774,"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":76775,"nodeType":"RevertStatement","src":"17581:33:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17486:19:160","parameters":{"id":76765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76764,"mutability":"mutable","name":"hook","nameLocation":"17514:4:160","nodeType":"VariableDeclaration","scope":76779,"src":"17506:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76763,"name":"address","nodeType":"ElementaryTypeName","src":"17506:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17505:14:160"},"returnParameters":{"id":76766,"nodeType":"ParameterList","parameters":[],"src":"17533:0:160"},"scope":77318,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76867,"nodeType":"FunctionDefinition","src":"17637:2002:160","nodes":[],"body":{"id":76866,"nodeType":"Block","src":"17695:1944:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76786,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"17713:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76787,"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":76788,"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":76790,"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":76791,"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":76785,"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":76792,"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":76793,"nodeType":"ExpressionStatement","src":"17705:62:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76795,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"18102: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":"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":76800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":76797,"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":76798,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"18133:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76799,"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":76802,"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":76803,"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":76794,"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":76804,"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":76805,"nodeType":"ExpressionStatement","src":"18094:93:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76807,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"18377: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":"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":76809,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"18402:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76810,"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":76812,"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":76813,"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":76806,"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":76814,"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":76815,"nodeType":"ExpressionStatement","src":"18369:109:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76817,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"18665:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76818,"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":76819,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"18687:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76820,"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":76822,"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":76823,"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":76816,"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":76824,"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":76825,"nodeType":"ExpressionStatement","src":"18657:103:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76827,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"18840:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76828,"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":76829,"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":76831,"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":76832,"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":76826,"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":76833,"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":76834,"nodeType":"ExpressionStatement","src":"18832:70:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76836,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"19112: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":"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":76838,"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":76840,"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":76841,"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":76835,"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":76842,"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":76843,"nodeType":"ExpressionStatement","src":"19104:84:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76845,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"19219:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76846,"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":76847,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"19239:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76848,"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":76850,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"19267:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76851,"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":76853,"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":76854,"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":76844,"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":76855,"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":76856,"nodeType":"ExpressionStatement","src":"19198:158:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76858,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"19561:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76859,"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":76860,"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":76862,"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":76863,"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":76857,"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":76864,"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":76865,"nodeType":"ExpressionStatement","src":"19553:79:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17646:16:160","parameters":{"id":76783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76782,"mutability":"mutable","name":"$","nameLocation":"17679:1:160","nodeType":"VariableDeclaration","scope":76867,"src":"17663:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76781,"nodeType":"UserDefinedTypeName","pathNode":{"id":76780,"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":76784,"nodeType":"ParameterList","parameters":[],"src":"17695:0:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77134,"nodeType":"FunctionDefinition","src":"19687:2572:160","nodes":[],"body":{"id":77133,"nodeType":"Block","src":"19735:2524:160","nodes":[],"statements":[{"assignments":[76874],"declarations":[{"constant":false,"id":76874,"mutability":"mutable","name":"$","nameLocation":"19761:1:160","nodeType":"VariableDeclaration","scope":77133,"src":"19745:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76873,"nodeType":"UserDefinedTypeName","pathNode":{"id":76872,"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":76877,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76875,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":76876,"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":76886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19790:54:160","subExpression":{"arguments":[{"id":76884,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"19837:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":76879,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"19801:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76880,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19813:13:160","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":83553,"src":"19801:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76878,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"19791:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":76882,"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":76883,"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":76885,"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":76891,"nodeType":"IfStatement","src":"19786:109:160","trueBody":{"id":76890,"nodeType":"Block","src":"19846:49:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76887,"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":76888,"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":76889,"nodeType":"RevertStatement","src":"19860:24:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76893,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"19927:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76892,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"19909:17:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$65208_$","typeString":"type(contract IMigratableEntity)"}},"id":76894,"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":76895,"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":76896,"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":76897,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"19948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76898,"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":76904,"nodeType":"IfStatement","src":"19905:128:160","trueBody":{"id":76903,"nodeType":"Block","src":"19975:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76900,"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":76901,"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":76902,"nodeType":"RevertStatement","src":"19989:33:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76906,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"20054:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76905,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20047:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76907,"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":76908,"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":76909,"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":76910,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"20078:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76911,"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":76917,"nodeType":"IfStatement","src":"20043:100:160","trueBody":{"id":76916,"nodeType":"Block","src":"20092:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76913,"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":76914,"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":76915,"nodeType":"RevertStatement","src":"20106:26:160"}]}},{"assignments":[76919],"declarations":[{"constant":false,"id":76919,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20188:18:160","nodeType":"VariableDeclaration","scope":77133,"src":"20181:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76918,"name":"uint48","nodeType":"ElementaryTypeName","src":"20181:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76925,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76921,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"20216:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76920,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20209:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76922,"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":76923,"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":76924,"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":76929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76926,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76919,"src":"20253:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76927,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"20274:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76928,"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":76934,"nodeType":"IfStatement","src":"20249:107:160","trueBody":{"id":76933,"nodeType":"Block","src":"20299:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76930,"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":76931,"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":76932,"nodeType":"RevertStatement","src":"20313:32:160"}]}},{"condition":{"id":76940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20403:40:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76936,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"20411:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76935,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20404:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76937,"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":76938,"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":76939,"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":76945,"nodeType":"IfStatement","src":"20399:103:160","trueBody":{"id":76944,"nodeType":"Block","src":"20445:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76941,"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":76942,"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":76943,"nodeType":"RevertStatement","src":"20459:32:160"}]}},{"assignments":[76948],"declarations":[{"constant":false,"id":76948,"mutability":"mutable","name":"delegator","nameLocation":"20527:9:160","nodeType":"VariableDeclaration","scope":77133,"src":"20512:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"},"typeName":{"id":76947,"nodeType":"UserDefinedTypeName","pathNode":{"id":76946,"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":76956,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76951,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"20561:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76950,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20554:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76952,"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":76953,"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":76954,"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":76949,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20539:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76955,"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":76967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":76959,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"20621:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76960,"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":76957,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"20595:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76958,"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":76961,"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":76964,"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":76963,"name":"uint256","nodeType":"ElementaryTypeName","src":"20643:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76962,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20638:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76965,"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":76966,"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":76980,"nodeType":"IfStatement","src":"20591:158:160","trueBody":{"id":76979,"nodeType":"Block","src":"20657:92:160","statements":[{"expression":{"arguments":[{"id":76971,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75126,"src":"20700:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":76974,"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":76973,"name":"uint256","nodeType":"ElementaryTypeName","src":"20725:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76972,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20720:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76975,"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":76976,"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":76968,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"20671:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76970,"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":76977,"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":76978,"nodeType":"ExpressionStatement","src":"20671:67:160"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76983,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"20793:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}],"id":76982,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20778:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76984,"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":76985,"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":76986,"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":76981,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76779,"src":"20758:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76987,"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":76988,"nodeType":"ExpressionStatement","src":"20758:53:160"},{"condition":{"id":76994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20857:38:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76990,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"20865:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76989,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20858:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76991,"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":76992,"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":76993,"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":76999,"nodeType":"IfStatement","src":"20853:99:160","trueBody":{"id":76998,"nodeType":"Block","src":"20897:55:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76995,"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":76996,"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":76997,"nodeType":"RevertStatement","src":"20911:30:160"}]}},{"assignments":[77001],"declarations":[{"constant":false,"id":77001,"mutability":"mutable","name":"slasher","nameLocation":"20970:7:160","nodeType":"VariableDeclaration","scope":77133,"src":"20962:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77000,"name":"address","nodeType":"ElementaryTypeName","src":"20962:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77007,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77003,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"20987:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77002,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20980:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":77004,"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":77005,"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":77006,"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":77015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77009,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77001,"src":"21026:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77008,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"21018:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$65100_$","typeString":"type(contract IEntity)"}},"id":77010,"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":77011,"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":77012,"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":77013,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"21045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77014,"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":77020,"nodeType":"IfStatement","src":"21014:111:160","trueBody":{"id":77019,"nodeType":"Block","src":"21068:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77016,"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":77017,"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":77018,"nodeType":"RevertStatement","src":"21082:32:160"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77022,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77001,"src":"21152:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77021,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21139:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77023,"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":77024,"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":77025,"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":77030,"nodeType":"IfStatement","src":"21135:98:160","trueBody":{"id":77029,"nodeType":"Block","src":"21177:56:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77026,"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":77027,"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":77028,"nodeType":"RevertStatement","src":"21191:31:160"}]}},{"assignments":[77032],"declarations":[{"constant":false,"id":77032,"mutability":"mutable","name":"vetoDuration","nameLocation":"21250:12:160","nodeType":"VariableDeclaration","scope":77133,"src":"21243:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77031,"name":"uint48","nodeType":"ElementaryTypeName","src":"21243:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77038,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77034,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77001,"src":"21278:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77033,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21265:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77035,"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":77036,"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":77037,"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":77042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77039,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77032,"src":"21315:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77040,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"21330:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77041,"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":77047,"nodeType":"IfStatement","src":"21311:92:160","trueBody":{"id":77046,"nodeType":"Block","src":"21349:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77043,"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":77044,"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":77045,"nodeType":"RevertStatement","src":"21363:29:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77048,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77032,"src":"21417:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":77049,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"21432:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77050,"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":77052,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76919,"src":"21459:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77058,"nodeType":"IfStatement","src":"21413:119:160","trueBody":{"id":77057,"nodeType":"Block","src":"21479:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77054,"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":77055,"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":77056,"nodeType":"RevertStatement","src":"21493:28:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77060,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77001,"src":"21559:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77059,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21546:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77061,"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":77062,"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":77063,"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":77064,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"21595:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77065,"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":77071,"nodeType":"IfStatement","src":"21542:139:160","trueBody":{"id":77070,"nodeType":"Block","src":"21624:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77067,"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":77068,"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":77069,"nodeType":"RevertStatement","src":"21638:32:160"}]}},{"assignments":[77073],"declarations":[{"constant":false,"id":77073,"mutability":"mutable","name":"resolver","nameLocation":"21699:8:160","nodeType":"VariableDeclaration","scope":77133,"src":"21691:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77072,"name":"address","nodeType":"ElementaryTypeName","src":"21691:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77085,"initialValue":{"arguments":[{"expression":{"id":77078,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"21741:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77079,"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":77082,"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":77081,"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":77080,"name":"bytes","nodeType":"ElementaryTypeName","src":"21759:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77083,"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":77075,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77001,"src":"21723:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77074,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21710:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77076,"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":77077,"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":77084,"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":77091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77086,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77073,"src":"21782:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77089,"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":77088,"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":77087,"name":"address","nodeType":"ElementaryTypeName","src":"21794:7:160","typeDescriptions":{}}},"id":77090,"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":77111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77107,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77073,"src":"21934:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":77108,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"21946:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77109,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21958:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83571,"src":"21946:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21934:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77116,"nodeType":"IfStatement","src":"21930:147:160","trueBody":{"id":77115,"nodeType":"Block","src":"21972:105:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77112,"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":77113,"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":77114,"nodeType":"RevertStatement","src":"22041:25:160"}]}},"id":77117,"nodeType":"IfStatement","src":"21778:299:160","trueBody":{"id":77106,"nodeType":"Block","src":"21806:118:160","statements":[{"expression":{"arguments":[{"id":77096,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75126,"src":"21854:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":77097,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"21874:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77098,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21886:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83571,"src":"21874:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":77102,"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":77101,"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":77100,"name":"bytes","nodeType":"ElementaryTypeName","src":"21904:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77103,"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":77093,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77001,"src":"21833:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77092,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21820:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77094,"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":77095,"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":77104,"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":77105,"nodeType":"ExpressionStatement","src":"21820:93:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77119,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"22170:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77118,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"22163:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":77120,"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":77121,"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":77122,"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":77125,"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":77124,"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":77123,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:160","typeDescriptions":{}}},"id":77126,"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":77132,"nodeType":"IfStatement","src":"22159:94:160","trueBody":{"id":77131,"nodeType":"Block","src":"22202:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77128,"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":77129,"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":77130,"nodeType":"RevertStatement","src":"22216:26:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19696:14:160","parameters":{"id":76870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76869,"mutability":"mutable","name":"_vault","nameLocation":"19719:6:160","nodeType":"VariableDeclaration","scope":77134,"src":"19711:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76868,"name":"address","nodeType":"ElementaryTypeName","src":"19711:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19710:16:160"},"returnParameters":{"id":76871,"nodeType":"ParameterList","parameters":[],"src":"19735:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77181,"nodeType":"FunctionDefinition","src":"22265:482:160","nodes":[],"body":{"id":77180,"nodeType":"Block","src":"22344:403:160","nodes":[],"statements":[{"condition":{"id":77150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22358:72:160","subExpression":{"arguments":[{"id":77148,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77138,"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":77142,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":77143,"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":77144,"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_$83572_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22390:20:160","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":83563,"src":"22369:41:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77141,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"22359:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":77146,"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":77147,"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":77149,"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":77155,"nodeType":"IfStatement","src":"22354:135:160","trueBody":{"id":77154,"nodeType":"Block","src":"22432:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77151,"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":77152,"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":77153,"nodeType":"RevertStatement","src":"22446:32:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77157,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77138,"src":"22525:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77156,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22503:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77158,"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":77159,"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":77160,"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":77161,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"22546:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22503:49:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77167,"nodeType":"IfStatement","src":"22499:114:160","trueBody":{"id":77166,"nodeType":"Block","src":"22554:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77163,"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":77164,"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":77165,"nodeType":"RevertStatement","src":"22568:34:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":77174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77169,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77138,"src":"22649:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77168,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22627:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77170,"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":77171,"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":77172,"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":77173,"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":77179,"nodeType":"IfStatement","src":"22623:118:160","trueBody":{"id":77178,"nodeType":"Block","src":"22675:66:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77175,"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":77176,"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":77177,"nodeType":"RevertStatement","src":"22689:41:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22274:22:160","parameters":{"id":77139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77136,"mutability":"mutable","name":"_vault","nameLocation":"22305:6:160","nodeType":"VariableDeclaration","scope":77181,"src":"22297:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77135,"name":"address","nodeType":"ElementaryTypeName","src":"22297:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77138,"mutability":"mutable","name":"_rewards","nameLocation":"22321:8:160","nodeType":"VariableDeclaration","scope":77181,"src":"22313:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77137,"name":"address","nodeType":"ElementaryTypeName","src":"22313:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22296:34:160"},"returnParameters":{"id":77140,"nodeType":"ParameterList","parameters":[],"src":"22344:0:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77191,"nodeType":"ModifierDefinition","src":"22884:82:160","nodes":[],"body":{"id":77190,"nodeType":"Block","src":"22919:47:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77186,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77183,"src":"22945:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":77185,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77238,"src":"22929:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":77187,"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":77188,"nodeType":"ExpressionStatement","src":"22929:19:160"},{"id":77189,"nodeType":"PlaceholderStatement","src":"22958:1:160"}]},"name":"validTimestamp","nameLocation":"22893:14:160","parameters":{"id":77184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77183,"mutability":"mutable","name":"ts","nameLocation":"22915:2:160","nodeType":"VariableDeclaration","scope":77191,"src":"22908:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77182,"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":77238,"nodeType":"FunctionDefinition","src":"22972:408:160","nodes":[],"body":{"id":77237,"nodeType":"Block","src":"23022:358:160","nodes":[],"statements":[{"assignments":[77198],"declarations":[{"constant":false,"id":77198,"mutability":"mutable","name":"$","nameLocation":"23048:1:160","nodeType":"VariableDeclaration","scope":77237,"src":"23032:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77197,"nodeType":"UserDefinedTypeName","pathNode":{"id":77196,"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":77201,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77199,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77251,"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":77200,"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":77206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77202,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77193,"src":"23076:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77203,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23082:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77204,"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":77205,"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":77211,"nodeType":"IfStatement","src":"23072:80:160","trueBody":{"id":77210,"nodeType":"Block","src":"23100:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77207,"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":77208,"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":77209,"nodeType":"RevertStatement","src":"23114:27:160"}]}},{"assignments":[77213],"declarations":[{"constant":false,"id":77213,"mutability":"mutable","name":"gracePeriod","nameLocation":"23169:11:160","nodeType":"VariableDeclaration","scope":77237,"src":"23162:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77212,"name":"uint48","nodeType":"ElementaryTypeName","src":"23162:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77224,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77214,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77198,"src":"23183:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77215,"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":77216,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77198,"src":"23207:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77217,"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":77221,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77198,"src":"23252:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77222,"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":77223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23183:87:160","trueExpression":{"expression":{"id":77219,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77198,"src":"23228:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77220,"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":77231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77225,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77193,"src":"23284:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77226,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"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":77228,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23304:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77229,"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":77230,"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":77236,"nodeType":"IfStatement","src":"23280:94:160","trueBody":{"id":77235,"nodeType":"Block","src":"23322:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77232,"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":77233,"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":77234,"nodeType":"RevertStatement","src":"23336:27:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22981:15:160","parameters":{"id":77194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77193,"mutability":"mutable","name":"ts","nameLocation":"23004:2:160","nodeType":"VariableDeclaration","scope":77238,"src":"22997:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77192,"name":"uint48","nodeType":"ElementaryTypeName","src":"22997:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22996:11:160"},"returnParameters":{"id":77195,"nodeType":"ParameterList","parameters":[],"src":"23022:0:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77251,"nodeType":"FunctionDefinition","src":"23386:201:160","nodes":[],"body":{"id":77250,"nodeType":"Block","src":"23456:131:160","nodes":[],"statements":[{"assignments":[77245],"declarations":[{"constant":false,"id":77245,"mutability":"mutable","name":"slot","nameLocation":"23474:4:160","nodeType":"VariableDeclaration","scope":77250,"src":"23466:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23466:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77248,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77246,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77263,"src":"23481:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":77247,"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":77242,"isOffset":false,"isSlot":true,"src":"23548:15:160","suffix":"slot","valueSize":1},{"declaration":77245,"isOffset":false,"isSlot":false,"src":"23567:4:160","valueSize":1}],"flags":["memory-safe"],"id":77249,"nodeType":"InlineAssembly","src":"23509:72:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23395:8:160","parameters":{"id":77239,"nodeType":"ParameterList","parameters":[],"src":"23403:2:160"},"returnParameters":{"id":77243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77242,"mutability":"mutable","name":"middleware","nameLocation":"23444:10:160","nodeType":"VariableDeclaration","scope":77251,"src":"23428:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77241,"nodeType":"UserDefinedTypeName","pathNode":{"id":77240,"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":77318,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77263,"nodeType":"FunctionDefinition","src":"23593:128:160","nodes":[],"body":{"id":77262,"nodeType":"Block","src":"23651:70:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":77258,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75120,"src":"23695:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77256,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23668: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":"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":77259,"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":77260,"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":77255,"id":77261,"nodeType":"Return","src":"23661:53:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23602:15:160","parameters":{"id":77252,"nodeType":"ParameterList","parameters":[],"src":"23617:2:160"},"returnParameters":{"id":77255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77263,"src":"23642:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23642:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23641:9:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77287,"nodeType":"FunctionDefinition","src":"23727:200:160","nodes":[],"body":{"id":77286,"nodeType":"Block","src":"23795:132:160","nodes":[],"statements":[{"assignments":[77271],"declarations":[{"constant":false,"id":77271,"mutability":"mutable","name":"slot","nameLocation":"23813:4:160","nodeType":"VariableDeclaration","scope":77286,"src":"23805:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23805:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77276,"initialValue":{"arguments":[{"id":77274,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77265,"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":77272,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"23820:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":77273,"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":77275,"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":77284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":77280,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75120,"src":"23894:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77277,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23867:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77279,"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":77281,"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":77282,"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":77283,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77271,"src":"23916:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23867:53:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77285,"nodeType":"ExpressionStatement","src":"23867:53:160"}]},"implemented":true,"kind":"function","modifiers":[{"id":77268,"kind":"modifierInvocation","modifierName":{"id":77267,"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":77266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77265,"mutability":"mutable","name":"namespace","nameLocation":"23766:9:160","nodeType":"VariableDeclaration","scope":77287,"src":"23752:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":77264,"name":"string","nodeType":"ElementaryTypeName","src":"23752:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23751:25:160"},"returnParameters":{"id":77269,"nodeType":"ParameterList","parameters":[],"src":"23795:0:160"},"scope":77318,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77297,"nodeType":"ModifierDefinition","src":"23933:81:160","nodes":[],"body":{"id":77296,"nodeType":"Block","src":"23968:46:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77292,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77289,"src":"23990:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77291,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"23978:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77293,"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":77294,"nodeType":"ExpressionStatement","src":"23978:18:160"},{"id":77295,"nodeType":"PlaceholderStatement","src":"24006:1:160"}]},"name":"vaultOwner","nameLocation":"23942:10:160","parameters":{"id":77290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77289,"mutability":"mutable","name":"vault","nameLocation":"23961:5:160","nodeType":"VariableDeclaration","scope":77297,"src":"23953:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77288,"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":77317,"nodeType":"FunctionDefinition","src":"24020:181:160","nodes":[],"body":{"id":77316,"nodeType":"Block","src":"24070:131:160","nodes":[],"statements":[{"condition":{"id":77310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24084:62:160","subExpression":{"arguments":[{"id":77306,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75123,"src":"24115:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77307,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24135:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77308,"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":77303,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77299,"src":"24100:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77302,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"24085:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$44539_$","typeString":"type(contract IAccessControl)"}},"id":77304,"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":77305,"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":77309,"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":77315,"nodeType":"IfStatement","src":"24080:115:160","trueBody":{"id":77314,"nodeType":"Block","src":"24148:47:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77311,"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":77312,"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":77313,"nodeType":"RevertStatement","src":"24162:22:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"24029:11:160","parameters":{"id":77300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77299,"mutability":"mutable","name":"vault","nameLocation":"24049:5:160","nodeType":"VariableDeclaration","scope":77317,"src":"24041:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77298,"name":"address","nodeType":"ElementaryTypeName","src":"24041:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24040:15:160"},"returnParameters":{"id":77301,"nodeType":"ParameterList","parameters":[],"src":"24070:0:160"},"scope":77318,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":75095,"name":"IMiddleware","nameLocations":["2399:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"2399:11:160"},"id":75096,"nodeType":"InheritanceSpecifier","src":"2399:11:160"},{"baseName":{"id":75097,"name":"OwnableUpgradeable","nameLocations":["2412:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"2412:18:160"},"id":75098,"nodeType":"InheritanceSpecifier","src":"2412:18:160"},{"baseName":{"id":75099,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["2432:35:160"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"2432:35:160"},"id":75100,"nodeType":"InheritanceSpecifier","src":"2432:35:160"},{"baseName":{"id":75101,"name":"UUPSUpgradeable","nameLocations":["2469:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"2469:15:160"},"id":75102,"nodeType":"InheritanceSpecifier","src":"2469:15:160"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77318,46243,44833,43943,42322,43484,42590,74131],"name":"Middleware","nameLocation":"2385:10:160","scope":77319,"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,84448,84451,84454],"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 15747d96f64..741df278e79 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20173:273:169;2621:41123:161;;;;17442:38;2621:41123;;;;;;;20272:15:169;;2621:41123:161;;;;;;;;;;;;;;;20173:273:169;;;;;;2621:41123:161;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;20173:273:169;;;;;;;;;;:::i;:::-;2621:41123:161;20150: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;;20811:50:169;;;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;20811:50:169;;;;;;:::i;:::-;2621:41123:161;20801: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;20811: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;20811: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;;;21723:279:169;;;;2621:41123:161;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;21723:279:169;;;;;;:::i;:::-;2621:41123:161;21700: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;;20811: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":{"77303":[{"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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5\",\"dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX\"]}},\"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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3","urls":["bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5","dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":77306,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":77309,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":77312,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":77315,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":77318,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":77321,"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":78719,"exportedSymbols":{"ERC1967Utils":[45701],"Gear":[84058],"Hashes":[41483],"ICallbacks":[73742],"IMirror":[74395],"IRouter":[74985],"IWrappedVara":[75001],"Memory":[41257],"Mirror":[78718],"StorageSlot":[49089]},"nodeType":"SourceUnit","src":"74:43671:161","nodes":[{"id":77275,"nodeType":"PragmaDirective","src":"74:24:161","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":77277,"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":78719,"sourceUnit":45702,"symbolAliases":[{"foreign":{"id":77276,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"108:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77279,"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":78719,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":77278,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"193:11:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77281,"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":78719,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":77280,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"268:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77283,"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":78719,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":77282,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"329:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77285,"nodeType":"ImportDirective","src":"395:46:161","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":78719,"sourceUnit":73743,"symbolAliases":[{"foreign":{"id":77284,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"403:10:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77287,"nodeType":"ImportDirective","src":"442:40:161","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":78719,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":77286,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"450:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77289,"nodeType":"ImportDirective","src":"483:40:161","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":78719,"sourceUnit":74986,"symbolAliases":[{"foreign":{"id":77288,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74985,"src":"491:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77291,"nodeType":"ImportDirective","src":"524:50:161","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":78719,"sourceUnit":75002,"symbolAliases":[{"foreign":{"id":77290,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"532:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77293,"nodeType":"ImportDirective","src":"575:44:161","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":78719,"sourceUnit":84059,"symbolAliases":[{"foreign":{"id":77292,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"583:4:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78718,"nodeType":"ContractDefinition","src":"2621:41123:161","nodes":[{"id":77300,"nodeType":"VariableDeclaration","src":"2900:85:161","nodes":[],"constant":true,"documentation":{"id":77297,"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":78718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77298,"name":"address","nodeType":"ElementaryTypeName","src":"2900:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":77299,"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":77303,"nodeType":"VariableDeclaration","src":"3228:31:161","nodes":[],"baseFunctions":[74295],"constant":false,"documentation":{"id":77301,"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":78718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77302,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77306,"nodeType":"VariableDeclaration","src":"3324:24:161","nodes":[],"baseFunctions":[74301],"constant":false,"documentation":{"id":77304,"nodeType":"StructuredDocumentation","src":"3266:53:161","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"3339:9:161","scope":78718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3324:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":77309,"nodeType":"VariableDeclaration","src":"3558:20:161","nodes":[],"baseFunctions":[74307],"constant":false,"documentation":{"id":77307,"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":78718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77308,"name":"uint256","nodeType":"ElementaryTypeName","src":"3558:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77312,"nodeType":"VariableDeclaration","src":"3668:18:161","nodes":[],"baseFunctions":[74313],"constant":false,"documentation":{"id":77310,"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":78718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77311,"name":"bool","nodeType":"ElementaryTypeName","src":"3668:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":77315,"nodeType":"VariableDeclaration","src":"3940:24:161","nodes":[],"baseFunctions":[74319],"constant":false,"documentation":{"id":77313,"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":78718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77314,"name":"address","nodeType":"ElementaryTypeName","src":"3940:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77318,"nodeType":"VariableDeclaration","src":"4050:26:161","nodes":[],"baseFunctions":[74325],"constant":false,"documentation":{"id":77316,"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":78718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77317,"name":"address","nodeType":"ElementaryTypeName","src":"4050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77321,"nodeType":"VariableDeclaration","src":"7411:12:161","nodes":[],"constant":false,"documentation":{"id":77319,"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":78718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77320,"name":"bool","nodeType":"ElementaryTypeName","src":"7411:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":77332,"nodeType":"FunctionDefinition","src":"7585:62:161","nodes":[],"body":{"id":77331,"nodeType":"Block","src":"7614:33:161","nodes":[],"statements":[{"expression":{"id":77329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77327,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77303,"src":"7624:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77328,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77324,"src":"7633:7:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7624:16:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77330,"nodeType":"ExpressionStatement","src":"7624:16:161"}]},"documentation":{"id":77322,"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":77325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77324,"mutability":"mutable","name":"_router","nameLocation":"7605:7:161","nodeType":"VariableDeclaration","scope":77332,"src":"7597:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77323,"name":"address","nodeType":"ElementaryTypeName","src":"7597:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7596:17:161"},"returnParameters":{"id":77326,"nodeType":"ParameterList","parameters":[],"src":"7614:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77340,"nodeType":"ModifierDefinition","src":"7804:83:161","nodes":[],"body":{"id":77339,"nodeType":"Block","src":"7836:51:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77335,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77353,"src":"7846:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77336,"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":77337,"nodeType":"ExpressionStatement","src":"7846:23:161"},{"id":77338,"nodeType":"PlaceholderStatement","src":"7879:1:161"}]},"documentation":{"id":77333,"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":77334,"nodeType":"ParameterList","parameters":[],"src":"7833:2:161"},"virtual":false,"visibility":"internal"},{"id":77353,"nodeType":"FunctionDefinition","src":"7993:107:161","nodes":[],"body":{"id":77352,"nodeType":"Block","src":"8040:60:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77345,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77309,"src":"8058:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77346,"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":77348,"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":77349,"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":77344,"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":77350,"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":77351,"nodeType":"ExpressionStatement","src":"8050:43:161"}]},"documentation":{"id":77341,"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":77342,"nodeType":"ParameterList","parameters":[],"src":"8023:2:161"},"returnParameters":{"id":77343,"nodeType":"ParameterList","parameters":[],"src":"8040:0:161"},"scope":78718,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77361,"nodeType":"ModifierDefinition","src":"8267:109:161","nodes":[],"body":{"id":77360,"nodeType":"Block","src":"8312:64:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77356,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77379,"src":"8322:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77357,"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":77358,"nodeType":"ExpressionStatement","src":"8322:36:161"},{"id":77359,"nodeType":"PlaceholderStatement","src":"8368:1:161"}]},"documentation":{"id":77354,"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":77355,"nodeType":"ParameterList","parameters":[],"src":"8309:2:161"},"virtual":false,"visibility":"internal"},{"id":77379,"nodeType":"FunctionDefinition","src":"8515:172:161","nodes":[],"body":{"id":77378,"nodeType":"Block","src":"8575:112:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77366,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77309,"src":"8593:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77367,"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":77372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77369,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8606:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77370,"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":77371,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77318,"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":77374,"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":77375,"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":77365,"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":77376,"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":77377,"nodeType":"ExpressionStatement","src":"8585:95:161"}]},"documentation":{"id":77362,"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":77363,"nodeType":"ParameterList","parameters":[],"src":"8558:2:161"},"returnParameters":{"id":77364,"nodeType":"ParameterList","parameters":[],"src":"8575:0:161"},"scope":78718,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77387,"nodeType":"ModifierDefinition","src":"8798:67:161","nodes":[],"body":{"id":77386,"nodeType":"Block","src":"8822:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77382,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77399,"src":"8832:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77383,"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":77384,"nodeType":"ExpressionStatement","src":"8832:15:161"},{"id":77385,"nodeType":"PlaceholderStatement","src":"8857:1:161"}]},"documentation":{"id":77380,"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":77381,"nodeType":"ParameterList","parameters":[],"src":"8819:2:161"},"virtual":false,"visibility":"internal"},{"id":77399,"nodeType":"FunctionDefinition","src":"8952:89:161","nodes":[],"body":{"id":77398,"nodeType":"Block","src":"8991:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9009:7:161","subExpression":{"id":77392,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77312,"src":"9010:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77394,"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":77395,"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":77391,"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":77396,"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":77397,"nodeType":"ExpressionStatement","src":"9001:33:161"}]},"documentation":{"id":77388,"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":77389,"nodeType":"ParameterList","parameters":[],"src":"8974:2:161"},"returnParameters":{"id":77390,"nodeType":"ParameterList","parameters":[],"src":"8991:0:161"},"scope":78718,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77407,"nodeType":"ModifierDefinition","src":"9152:67:161","nodes":[],"body":{"id":77406,"nodeType":"Block","src":"9176:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77402,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77418,"src":"9186:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77403,"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":77404,"nodeType":"ExpressionStatement","src":"9186:15:161"},{"id":77405,"nodeType":"PlaceholderStatement","src":"9211:1:161"}]},"documentation":{"id":77400,"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":77401,"nodeType":"ParameterList","parameters":[],"src":"9173:2:161"},"virtual":false,"visibility":"internal"},{"id":77418,"nodeType":"FunctionDefinition","src":"9306:91:161","nodes":[],"body":{"id":77417,"nodeType":"Block","src":"9345:52:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77412,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77312,"src":"9363:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77413,"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":77414,"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":77411,"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":77415,"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":77416,"nodeType":"ExpressionStatement","src":"9355:35:161"}]},"documentation":{"id":77408,"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":77409,"nodeType":"ParameterList","parameters":[],"src":"9328:2:161"},"returnParameters":{"id":77410,"nodeType":"ParameterList","parameters":[],"src":"9345:0:161"},"scope":78718,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77426,"nodeType":"ModifierDefinition","src":"9503:63:161","nodes":[],"body":{"id":77425,"nodeType":"Block","src":"9525:41:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77421,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77440,"src":"9535:11:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77422,"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":77423,"nodeType":"ExpressionStatement","src":"9535:13:161"},{"id":77424,"nodeType":"PlaceholderStatement","src":"9558:1:161"}]},"documentation":{"id":77419,"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":77420,"nodeType":"ParameterList","parameters":[],"src":"9522:2:161"},"virtual":false,"visibility":"internal"},{"id":77440,"nodeType":"FunctionDefinition","src":"9658:102:161","nodes":[],"body":{"id":77439,"nodeType":"Block","src":"9695:65:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77431,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9713:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77432,"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":77433,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77303,"src":"9727:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9713:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77435,"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":77436,"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":77430,"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":77437,"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":77438,"nodeType":"ExpressionStatement","src":"9705:48:161"}]},"documentation":{"id":77427,"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":77428,"nodeType":"ParameterList","parameters":[],"src":"9678:2:161"},"returnParameters":{"id":77429,"nodeType":"ParameterList","parameters":[],"src":"9695:0:161"},"scope":78718,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77448,"nodeType":"ModifierDefinition","src":"9882:69:161","nodes":[],"body":{"id":77447,"nodeType":"Block","src":"9907:44:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77443,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77464,"src":"9917:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77444,"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":77445,"nodeType":"ExpressionStatement","src":"9917:16:161"},{"id":77446,"nodeType":"PlaceholderStatement","src":"9943:1:161"}]},"documentation":{"id":77441,"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":77442,"nodeType":"ParameterList","parameters":[],"src":"9904:2:161"},"virtual":false,"visibility":"internal"},{"id":77464,"nodeType":"FunctionDefinition","src":"10043:108:161","nodes":[],"body":{"id":77463,"nodeType":"Block","src":"10083:68:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10101:25:161","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77454,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77303,"src":"10110:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77453,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74985,"src":"10102:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74985_$","typeString":"type(contract IRouter)"}},"id":77455,"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_$74985","typeString":"contract IRouter"}},"id":77456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:6:161","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":74748,"src":"10102:22:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":77457,"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":77459,"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":77460,"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":77452,"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":77461,"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":77462,"nodeType":"ExpressionStatement","src":"10093:51:161"}]},"documentation":{"id":77449,"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":77450,"nodeType":"ParameterList","parameters":[],"src":"10066:2:161"},"returnParameters":{"id":77451,"nodeType":"ParameterList","parameters":[],"src":"10083:0:161"},"scope":78718,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77475,"nodeType":"ModifierDefinition","src":"10289:89:161","nodes":[],"body":{"id":77474,"nodeType":"Block","src":"10328:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77467,"src":"10354:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77469,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77505,"src":"10338:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77471,"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":77472,"nodeType":"ExpressionStatement","src":"10338:22:161"},{"id":77473,"nodeType":"PlaceholderStatement","src":"10370:1:161"}]},"documentation":{"id":77465,"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":77468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77467,"mutability":"mutable","name":"value","nameLocation":"10321:5:161","nodeType":"VariableDeclaration","scope":77475,"src":"10313:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77466,"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":77505,"nodeType":"FunctionDefinition","src":"10487:228:161","nodes":[],"body":{"id":77504,"nodeType":"Block","src":"10536:179:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77481,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77478,"src":"10550:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77482,"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":77503,"nodeType":"IfStatement","src":"10546:163:161","trueBody":{"id":77502,"nodeType":"Block","src":"10562:147:161","statements":[{"assignments":[77485],"declarations":[{"constant":false,"id":77485,"mutability":"mutable","name":"success","nameLocation":"10581:7:161","nodeType":"VariableDeclaration","scope":77502,"src":"10576:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77484,"name":"bool","nodeType":"ElementaryTypeName","src":"10576:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77495,"initialValue":{"arguments":[{"expression":{"id":77490,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10619:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77491,"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":77492,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77303,"src":"10631:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77493,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77478,"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":77487,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77303,"src":"10598:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77486,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78626,"src":"10591:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75001_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77488,"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_$75001","typeString":"contract IWrappedVara"}},"id":77489,"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":77494,"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":77497,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77485,"src":"10667:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77498,"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":77499,"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":77496,"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":77500,"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":77501,"nodeType":"ExpressionStatement","src":"10659:39:161"}]}}]},"documentation":{"id":77476,"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":77479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77478,"mutability":"mutable","name":"value","nameLocation":"10520:5:161","nodeType":"VariableDeclaration","scope":77505,"src":"10512:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77477,"name":"uint128","nodeType":"ElementaryTypeName","src":"10512:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10511:15:161"},"returnParameters":{"id":77480,"nodeType":"ParameterList","parameters":[],"src":"10536:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77532,"nodeType":"FunctionDefinition","src":"10854:215:161","nodes":[],"body":{"id":77531,"nodeType":"Block","src":"10904:165:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77511,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77508,"src":"10918:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77512,"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":77530,"nodeType":"IfStatement","src":"10914:149:161","trueBody":{"id":77529,"nodeType":"Block","src":"10930:133:161","statements":[{"assignments":[77515,null],"declarations":[{"constant":false,"id":77515,"mutability":"mutable","name":"success","nameLocation":"10950:7:161","nodeType":"VariableDeclaration","scope":77529,"src":"10945:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77514,"name":"bool","nodeType":"ElementaryTypeName","src":"10945:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77522,"initialValue":{"arguments":[{"hexValue":"","id":77520,"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":77516,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77303,"src":"10962:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77517,"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":77519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":77518,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77508,"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":77521,"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":77524,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77515,"src":"11013:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77525,"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":77526,"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":77523,"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":77527,"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":77528,"nodeType":"ExpressionStatement","src":"11005:47:161"}]}}]},"documentation":{"id":77506,"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":77509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77508,"mutability":"mutable","name":"value","nameLocation":"10888:5:161","nodeType":"VariableDeclaration","scope":77532,"src":"10880:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77507,"name":"uint128","nodeType":"ElementaryTypeName","src":"10880:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10879:15:161"},"returnParameters":{"id":77510,"nodeType":"ParameterList","parameters":[],"src":"10904:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77550,"nodeType":"FunctionDefinition","src":"11454:216:161","nodes":[],"body":{"id":77549,"nodeType":"Block","src":"11612:58:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77545,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77535,"src":"11642:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77546,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"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":77544,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77917,"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":77547,"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":77543,"id":77548,"nodeType":"Return","src":"11622:41:161"}]},"baseFunctions":[74335],"documentation":{"id":77533,"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":77540,"kind":"modifierInvocation","modifierName":{"id":77539,"name":"whenNotPaused","nameLocations":["11558:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77448,"src":"11558:13:161"},"nodeType":"ModifierInvocation","src":"11558:13:161"}],"name":"sendMessage","nameLocation":"11463:11:161","parameters":{"id":77538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77535,"mutability":"mutable","name":"_payload","nameLocation":"11490:8:161","nodeType":"VariableDeclaration","scope":77550,"src":"11475:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77534,"name":"bytes","nodeType":"ElementaryTypeName","src":"11475:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77537,"mutability":"mutable","name":"_callReply","nameLocation":"11505:10:161","nodeType":"VariableDeclaration","scope":77550,"src":"11500:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77536,"name":"bool","nodeType":"ElementaryTypeName","src":"11500:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11474:42:161"},"returnParameters":{"id":77543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77542,"mutability":"mutable","name":"messageId","nameLocation":"11597:9:161","nodeType":"VariableDeclaration","scope":77550,"src":"11589:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11589:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11588:19:161"},"scope":78718,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77585,"nodeType":"FunctionDefinition","src":"12211:340:161","nodes":[],"body":{"id":77584,"nodeType":"Block","src":"12384:167:161","nodes":[],"statements":[{"assignments":[77565],"declarations":[{"constant":false,"id":77565,"mutability":"mutable","name":"_value","nameLocation":"12402:6:161","nodeType":"VariableDeclaration","scope":77584,"src":"12394:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77564,"name":"uint128","nodeType":"ElementaryTypeName","src":"12394:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77571,"initialValue":{"arguments":[{"expression":{"id":77568,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12419:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77569,"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":77567,"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":77566,"name":"uint128","nodeType":"ElementaryTypeName","src":"12411:7:161","typeDescriptions":{}}},"id":77570,"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":77573,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77565,"src":"12457:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77572,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77532,"src":"12440:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77574,"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":77575,"nodeType":"ExpressionStatement","src":"12440:24:161"},{"eventCall":{"arguments":[{"id":77577,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77553,"src":"12503:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77578,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12515:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77579,"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":77580,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77555,"src":"12527:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77581,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77565,"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":77576,"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":77582,"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":77583,"nodeType":"EmitStatement","src":"12475:69:161"}]},"baseFunctions":[74343],"documentation":{"id":77551,"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":77558,"kind":"modifierInvocation","modifierName":{"id":77557,"name":"whenNotPaused","nameLocations":["12316:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77448,"src":"12316:13:161"},"nodeType":"ModifierInvocation","src":"12316:13:161"},{"id":77560,"kind":"modifierInvocation","modifierName":{"id":77559,"name":"onlyIfActive","nameLocations":["12338:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77387,"src":"12338:12:161"},"nodeType":"ModifierInvocation","src":"12338:12:161"},{"id":77562,"kind":"modifierInvocation","modifierName":{"id":77561,"name":"onlyAfterInitMessage","nameLocations":["12359:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77340,"src":"12359:20:161"},"nodeType":"ModifierInvocation","src":"12359:20:161"}],"name":"sendReply","nameLocation":"12220:9:161","parameters":{"id":77556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77553,"mutability":"mutable","name":"_repliedTo","nameLocation":"12238:10:161","nodeType":"VariableDeclaration","scope":77585,"src":"12230:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12230:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77555,"mutability":"mutable","name":"_payload","nameLocation":"12265:8:161","nodeType":"VariableDeclaration","scope":77585,"src":"12250:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77554,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12229:45:161"},"returnParameters":{"id":77563,"nodeType":"ParameterList","parameters":[],"src":"12384:0:161"},"scope":78718,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77604,"nodeType":"FunctionDefinition","src":"12841:165:161","nodes":[],"body":{"id":77603,"nodeType":"Block","src":"12938:68:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77598,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77588,"src":"12976:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77599,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12988:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77600,"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":77597,"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":77601,"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":77602,"nodeType":"EmitStatement","src":"12948:51:161"}]},"baseFunctions":[74349],"documentation":{"id":77586,"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":77591,"kind":"modifierInvocation","modifierName":{"id":77590,"name":"whenNotPaused","nameLocations":["12890:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77448,"src":"12890:13:161"},"nodeType":"ModifierInvocation","src":"12890:13:161"},{"id":77593,"kind":"modifierInvocation","modifierName":{"id":77592,"name":"onlyIfActive","nameLocations":["12904:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77387,"src":"12904:12:161"},"nodeType":"ModifierInvocation","src":"12904:12:161"},{"id":77595,"kind":"modifierInvocation","modifierName":{"id":77594,"name":"onlyAfterInitMessage","nameLocations":["12917:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77340,"src":"12917:20:161"},"nodeType":"ModifierInvocation","src":"12917:20:161"}],"name":"claimValue","nameLocation":"12850:10:161","parameters":{"id":77589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77588,"mutability":"mutable","name":"_claimedId","nameLocation":"12869:10:161","nodeType":"VariableDeclaration","scope":77604,"src":"12861:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12861:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12860:20:161"},"returnParameters":{"id":77596,"nodeType":"ParameterList","parameters":[],"src":"12938:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77622,"nodeType":"FunctionDefinition","src":"13307:168:161","nodes":[],"body":{"id":77621,"nodeType":"Block","src":"13414:61:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77618,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77607,"src":"13461:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77617,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"13429:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77619,"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":77620,"nodeType":"EmitStatement","src":"13424:44:161"}]},"baseFunctions":[74355],"documentation":{"id":77605,"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":77610,"kind":"modifierInvocation","modifierName":{"id":77609,"name":"whenNotPaused","nameLocations":["13364:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77448,"src":"13364:13:161"},"nodeType":"ModifierInvocation","src":"13364:13:161"},{"id":77612,"kind":"modifierInvocation","modifierName":{"id":77611,"name":"onlyIfActive","nameLocations":["13378:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77387,"src":"13378:12:161"},"nodeType":"ModifierInvocation","src":"13378:12:161"},{"arguments":[{"id":77614,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77607,"src":"13406:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":77615,"kind":"modifierInvocation","modifierName":{"id":77613,"name":"retrievingVara","nameLocations":["13391:14:161"],"nodeType":"IdentifierPath","referencedDeclaration":77475,"src":"13391:14:161"},"nodeType":"ModifierInvocation","src":"13391:22:161"}],"name":"executableBalanceTopUp","nameLocation":"13316:22:161","parameters":{"id":77608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77607,"mutability":"mutable","name":"_value","nameLocation":"13347:6:161","nodeType":"VariableDeclaration","scope":77622,"src":"13339:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77606,"name":"uint128","nodeType":"ElementaryTypeName","src":"13339:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13338:16:161"},"returnParameters":{"id":77616,"nodeType":"ParameterList","parameters":[],"src":"13414:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77670,"nodeType":"FunctionDefinition","src":"14182:374:161","nodes":[],"body":{"id":77669,"nodeType":"Block","src":"14357:199:161","nodes":[],"statements":[{"clauses":[{"block":{"id":77656,"nodeType":"Block","src":"14451:2:161","statements":[]},"errorName":"","id":77657,"nodeType":"TryCatchClause","src":"14451:2:161"},{"block":{"id":77658,"nodeType":"Block","src":"14460:2:161","statements":[]},"errorName":"","id":77659,"nodeType":"TryCatchClause","src":"14454:8:161"}],"externalCall":{"arguments":[{"expression":{"id":77644,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14393:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77645,"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":77648,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14413:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78718","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78718","typeString":"contract Mirror"}],"id":77647,"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":77646,"name":"address","nodeType":"ElementaryTypeName","src":"14405:7:161","typeDescriptions":{}}},"id":77649,"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":77650,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77625,"src":"14420:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77651,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77627,"src":"14428:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77652,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77629,"src":"14439:2:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":77653,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77631,"src":"14443:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77654,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"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":77641,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77303,"src":"14378:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77640,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78626,"src":"14371:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75001_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77642,"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_$75001","typeString":"contract IWrappedVara"}},"id":77643,"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":77655,"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":77660,"nodeType":"TryStatement","src":"14367:95:161"},{"expression":{"arguments":[{"id":77662,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77625,"src":"14487:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77661,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77505,"src":"14471:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77663,"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":77664,"nodeType":"ExpressionStatement","src":"14471:23:161"},{"eventCall":{"arguments":[{"id":77666,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77625,"src":"14542:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77665,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"14510:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77667,"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":77668,"nodeType":"EmitStatement","src":"14505:44:161"}]},"baseFunctions":[74369],"documentation":{"id":77623,"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":77636,"kind":"modifierInvocation","modifierName":{"id":77635,"name":"whenNotPaused","nameLocations":["14318:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77448,"src":"14318:13:161"},"nodeType":"ModifierInvocation","src":"14318:13:161"},{"id":77638,"kind":"modifierInvocation","modifierName":{"id":77637,"name":"onlyIfActive","nameLocations":["14340:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77387,"src":"14340:12:161"},"nodeType":"ModifierInvocation","src":"14340:12:161"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"14191:32:161","parameters":{"id":77634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77625,"mutability":"mutable","name":"_value","nameLocation":"14232:6:161","nodeType":"VariableDeclaration","scope":77670,"src":"14224:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77624,"name":"uint128","nodeType":"ElementaryTypeName","src":"14224:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77627,"mutability":"mutable","name":"_deadline","nameLocation":"14248:9:161","nodeType":"VariableDeclaration","scope":77670,"src":"14240:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77626,"name":"uint256","nodeType":"ElementaryTypeName","src":"14240:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77629,"mutability":"mutable","name":"_v","nameLocation":"14265:2:161","nodeType":"VariableDeclaration","scope":77670,"src":"14259:8:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77628,"name":"uint8","nodeType":"ElementaryTypeName","src":"14259:5:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":77631,"mutability":"mutable","name":"_r","nameLocation":"14277:2:161","nodeType":"VariableDeclaration","scope":77670,"src":"14269:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14269:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77633,"mutability":"mutable","name":"_s","nameLocation":"14289:2:161","nodeType":"VariableDeclaration","scope":77670,"src":"14281:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14281:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14223:69:161"},"returnParameters":{"id":77639,"nodeType":"ParameterList","parameters":[],"src":"14357:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77688,"nodeType":"FunctionDefinition","src":"14802:208:161","nodes":[],"body":{"id":77687,"nodeType":"Block","src":"14867:143:161","nodes":[],"statements":[{"assignments":[null,77677],"declarations":[null,{"constant":false,"id":77677,"mutability":"mutable","name":"success","nameLocation":"14885:7:161","nodeType":"VariableDeclaration","scope":77687,"src":"14880:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77676,"name":"bool","nodeType":"ElementaryTypeName","src":"14880:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77680,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77678,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77950,"src":"14896:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":77679,"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":77682,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77677,"src":"14947:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77683,"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":77684,"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":77681,"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":77685,"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":77686,"nodeType":"ExpressionStatement","src":"14939:64:161"}]},"baseFunctions":[74373],"documentation":{"id":77671,"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":77674,"kind":"modifierInvocation","modifierName":{"id":77673,"name":"whenNotPaused","nameLocations":["14853:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77448,"src":"14853:13:161"},"nodeType":"ModifierInvocation","src":"14853:13:161"}],"name":"transferLockedValueToInheritor","nameLocation":"14811:30:161","parameters":{"id":77672,"nodeType":"ParameterList","parameters":[],"src":"14841:2:161"},"returnParameters":{"id":77675,"nodeType":"ParameterList","parameters":[],"src":"14867:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77767,"nodeType":"FunctionDefinition","src":"16008:749:161","nodes":[],"body":{"id":77766,"nodeType":"Block","src":"16163:594:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77703,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77318,"src":"16181:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77706,"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":77705,"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":77704,"name":"address","nodeType":"ElementaryTypeName","src":"16196:7:161","typeDescriptions":{}}},"id":77707,"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":77709,"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":77710,"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":77702,"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":77711,"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":77712,"nodeType":"ExpressionStatement","src":"16173:59:161"},{"expression":{"arguments":[{"id":77715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16251:8:161","subExpression":{"id":77714,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77321,"src":"16252:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77716,"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":77717,"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":77713,"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":77718,"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":77719,"nodeType":"ExpressionStatement","src":"16243:38:161"},{"assignments":[77724],"declarations":[{"constant":false,"id":77724,"mutability":"mutable","name":"implementationSlot","nameLocation":"16324:18:161","nodeType":"VariableDeclaration","scope":77766,"src":"16292:50:161","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":77723,"nodeType":"UserDefinedTypeName","pathNode":{"id":77722,"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":77730,"initialValue":{"arguments":[{"expression":{"id":77727,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"16384:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45701_$","typeString":"type(library ERC1967Utils)"}},"id":77728,"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":77725,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"16357:11:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77726,"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":77729,"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":77738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77732,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77724,"src":"16436:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77733,"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":77736,"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":77735,"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":77734,"name":"address","nodeType":"ElementaryTypeName","src":"16464:7:161","typeDescriptions":{}}},"id":77737,"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":77739,"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":77740,"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":77731,"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":77741,"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":77742,"nodeType":"ExpressionStatement","src":"16428:73:161"},{"expression":{"id":77745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77743,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77318,"src":"16512:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77744,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77691,"src":"16526:12:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16512:26:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77746,"nodeType":"ExpressionStatement","src":"16512:26:161"},{"expression":{"id":77749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77747,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77321,"src":"16548:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77748,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77695,"src":"16558:8:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16548:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77750,"nodeType":"ExpressionStatement","src":"16548:18:161"},{"expression":{"id":77755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77751,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77724,"src":"16576:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77753,"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":77754,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77693,"src":"16603:13:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16576:40:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77756,"nodeType":"ExpressionStatement","src":"16576:40:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77757,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77697,"src":"16631:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77758,"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":77765,"nodeType":"IfStatement","src":"16627:124:161","trueBody":{"id":77764,"nodeType":"Block","src":"16663:88:161","statements":[{"eventCall":{"arguments":[{"id":77761,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77697,"src":"16714:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77760,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"16682:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77762,"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":77763,"nodeType":"EmitStatement","src":"16677:63:161"}]}}]},"baseFunctions":[74385],"documentation":{"id":77689,"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":77700,"kind":"modifierInvocation","modifierName":{"id":77699,"name":"onlyRouter","nameLocations":["16148:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77426,"src":"16148:10:161"},"nodeType":"ModifierInvocation","src":"16148:10:161"}],"name":"initialize","nameLocation":"16017:10:161","parameters":{"id":77698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77691,"mutability":"mutable","name":"_initializer","nameLocation":"16036:12:161","nodeType":"VariableDeclaration","scope":77767,"src":"16028:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77690,"name":"address","nodeType":"ElementaryTypeName","src":"16028:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77693,"mutability":"mutable","name":"_abiInterface","nameLocation":"16058:13:161","nodeType":"VariableDeclaration","scope":77767,"src":"16050:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77692,"name":"address","nodeType":"ElementaryTypeName","src":"16050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77695,"mutability":"mutable","name":"_isSmall","nameLocation":"16078:8:161","nodeType":"VariableDeclaration","scope":77767,"src":"16073:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77694,"name":"bool","nodeType":"ElementaryTypeName","src":"16073:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":77697,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"16096:25:161","nodeType":"VariableDeclaration","scope":77767,"src":"16088:33:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77696,"name":"uint128","nodeType":"ElementaryTypeName","src":"16088:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16027:95:161"},"returnParameters":{"id":77701,"nodeType":"ParameterList","parameters":[],"src":"16163:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77867,"nodeType":"FunctionDefinition","src":"16971:1748:161","nodes":[],"body":{"id":77866,"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":77785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77779,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"17254:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83107,"src":"17254:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":77783,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17285:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78718","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78718","typeString":"contract Mirror"}],"id":77782,"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":77781,"name":"address","nodeType":"ElementaryTypeName","src":"17277:7:161","typeDescriptions":{}}},"id":77784,"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":77786,"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":77787,"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":77778,"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":77788,"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":77789,"nodeType":"ExpressionStatement","src":"17246:63:161"},{"condition":{"expression":{"id":77790,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"17442:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17454:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83122,"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":77798,"nodeType":"IfStatement","src":"17438:113:161","trueBody":{"id":77797,"nodeType":"Block","src":"17482:69:161","statements":[{"expression":{"arguments":[{"expression":{"id":77793,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"17513:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"17513:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77792,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77532,"src":"17496:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77795,"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":77796,"nodeType":"ExpressionStatement","src":"17496:44:161"}]}},{"assignments":[77801],"declarations":[{"constant":false,"id":77801,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"17637:18:161","nodeType":"VariableDeclaration","scope":77866,"src":"17629:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77800,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17629:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":77806,"initialValue":{"arguments":[{"expression":{"id":77803,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"17672:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17684:8:161","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":83132,"src":"17672:20:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83067_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$83067_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":77802,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78048,"src":"17658:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$83067_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":77805,"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":[77809],"declarations":[{"constant":false,"id":77809,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"17779:15:161","nodeType":"VariableDeclaration","scope":77866,"src":"17771:23:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17771:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send value for each claim.","id":77814,"initialValue":{"arguments":[{"expression":{"id":77811,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"17810:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17822:11:161","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":83127,"src":"17810:23:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83173_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83173_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":77810,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78556,"src":"17797:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$83173_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":77813,"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":77815,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"17914:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17926:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"17914:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":77835,"nodeType":"Block","src":"18001:92:161","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77824,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"18023:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18035:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"18023:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77828,"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":77827,"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":77826,"name":"address","nodeType":"ElementaryTypeName","src":"18048:7:161","typeDescriptions":{}}},"id":77829,"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":77831,"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":77832,"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":77823,"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":77833,"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":77834,"nodeType":"ExpressionStatement","src":"18015:67:161"}]},"id":77836,"nodeType":"IfStatement","src":"17910:183:161","trueBody":{"id":77822,"nodeType":"Block","src":"17934:61:161","statements":[{"expression":{"arguments":[{"expression":{"id":77818,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"17962:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17974:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"17962:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77817,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78589,"src":"17948:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77820,"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":77821,"nodeType":"ExpressionStatement","src":"17948:36:161"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77837,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77306,"src":"18181:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77838,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"18194:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83110,"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":77847,"nodeType":"IfStatement","src":"18177:110:161","trueBody":{"id":77846,"nodeType":"Block","src":"18220:67:161","statements":[{"expression":{"arguments":[{"expression":{"id":77842,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"18251:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18263:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83110,"src":"18251:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77841,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78604,"src":"18234:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77844,"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":77845,"nodeType":"ExpressionStatement","src":"18234:42:161"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":77850,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"18425:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18437:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83107,"src":"18425:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77852,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"18458:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18470:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83110,"src":"18458:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77854,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"18496:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18508:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"18496:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":77856,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"18528:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18540:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"18528:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77858,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"18563:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"18563:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":77860,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"18603:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18615:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"18603:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":77862,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77809,"src":"18655:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77863,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77801,"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":77848,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"18387:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":77849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18392:19:161","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":83409,"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":77864,"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":77777,"id":77865,"nodeType":"Return","src":"18380:332:161"}]},"baseFunctions":[74394],"documentation":{"id":77768,"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":77774,"kind":"modifierInvocation","modifierName":{"id":77773,"name":"onlyRouter","nameLocations":["17087:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77426,"src":"17087:10:161"},"nodeType":"ModifierInvocation","src":"17087:10:161"}],"name":"performStateTransition","nameLocation":"16980:22:161","parameters":{"id":77772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77771,"mutability":"mutable","name":"_transition","nameLocation":"17033:11:161","nodeType":"VariableDeclaration","scope":77867,"src":"17003:41:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":77770,"nodeType":"UserDefinedTypeName","pathNode":{"id":77769,"name":"Gear.StateTransition","nameLocations":["17003:4:161","17008:15:161"],"nodeType":"IdentifierPath","referencedDeclaration":83133,"src":"17003:20:161"},"referencedDeclaration":83133,"src":"17003:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"17002:43:161"},"returnParameters":{"id":77777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77776,"mutability":"mutable","name":"transitionHash","nameLocation":"17123:14:161","nodeType":"VariableDeclaration","scope":77867,"src":"17115:22:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17115:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17114:24:161"},"scope":78718,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77917,"nodeType":"FunctionDefinition","src":"19152:760:161","nodes":[],"body":{"id":77916,"nodeType":"Block","src":"19335:577:161","nodes":[],"statements":[{"assignments":[77882],"declarations":[{"constant":false,"id":77882,"mutability":"mutable","name":"_value","nameLocation":"19353:6:161","nodeType":"VariableDeclaration","scope":77916,"src":"19345:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77881,"name":"uint128","nodeType":"ElementaryTypeName","src":"19345:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77888,"initialValue":{"arguments":[{"expression":{"id":77885,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19370:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77886,"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":77884,"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":77883,"name":"uint128","nodeType":"ElementaryTypeName","src":"19362:7:161","typeDescriptions":{}}},"id":77887,"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":77890,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77882,"src":"19408:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77889,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77532,"src":"19391:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77891,"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":77892,"nodeType":"ExpressionStatement","src":"19391:24:161"},{"assignments":[77894],"declarations":[{"constant":false,"id":77894,"mutability":"mutable","name":"_nonce","nameLocation":"19434:6:161","nodeType":"VariableDeclaration","scope":77916,"src":"19426:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77893,"name":"uint256","nodeType":"ElementaryTypeName","src":"19426:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77896,"initialValue":{"id":77895,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77309,"src":"19443:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19426:22:161"},{"assignments":[77899],"declarations":[{"constant":false,"id":77899,"mutability":"mutable","name":"id","nameLocation":"19617:2:161","nodeType":"VariableDeclaration","scope":77916,"src":"19609:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77898,"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":77900,"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":77894,"isOffset":false,"isSlot":false,"src":"19726:6:161","valueSize":1},{"declaration":77899,"isOffset":false,"isSlot":false,"src":"19746:2:161","valueSize":1}],"flags":["memory-safe"],"id":77901,"nodeType":"InlineAssembly","src":"19629:154:161"},{"expression":{"id":77903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19792:7:161","subExpression":{"id":77902,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77309,"src":"19792:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77904,"nodeType":"ExpressionStatement","src":"19792:7:161"},{"eventCall":{"arguments":[{"id":77906,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77899,"src":"19840:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77907,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19844:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77908,"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":77909,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77870,"src":"19856:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77910,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77882,"src":"19866:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77911,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77872,"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":77905,"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":77912,"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":77913,"nodeType":"EmitStatement","src":"19810:75:161"},{"expression":{"id":77914,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77899,"src":"19903:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77880,"id":77915,"nodeType":"Return","src":"19896:9:161"}]},"documentation":{"id":77868,"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":77875,"kind":"modifierInvocation","modifierName":{"id":77874,"name":"onlyIfActive","nameLocations":["19240:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77387,"src":"19240:12:161"},"nodeType":"ModifierInvocation","src":"19240:12:161"},{"id":77877,"kind":"modifierInvocation","modifierName":{"id":77876,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["19261:33:161"],"nodeType":"IdentifierPath","referencedDeclaration":77361,"src":"19261:33:161"},"nodeType":"ModifierInvocation","src":"19261:33:161"}],"name":"_sendMessage","nameLocation":"19161:12:161","parameters":{"id":77873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77870,"mutability":"mutable","name":"_payload","nameLocation":"19189:8:161","nodeType":"VariableDeclaration","scope":77917,"src":"19174:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77869,"name":"bytes","nodeType":"ElementaryTypeName","src":"19174:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77872,"mutability":"mutable","name":"_callReply","nameLocation":"19204:10:161","nodeType":"VariableDeclaration","scope":77917,"src":"19199:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77871,"name":"bool","nodeType":"ElementaryTypeName","src":"19199:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19173:42:161"},"returnParameters":{"id":77880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77879,"mutability":"mutable","name":"messageId","nameLocation":"19320:9:161","nodeType":"VariableDeclaration","scope":77917,"src":"19312:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77878,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19312:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19311:19:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77950,"nodeType":"FunctionDefinition","src":"20241:470:161","nodes":[],"body":{"id":77949,"nodeType":"Block","src":"20390:321:161","nodes":[],"statements":[{"assignments":[77928],"declarations":[{"constant":false,"id":77928,"mutability":"mutable","name":"balance","nameLocation":"20408:7:161","nodeType":"VariableDeclaration","scope":77949,"src":"20400:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77927,"name":"uint256","nodeType":"ElementaryTypeName","src":"20400:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77934,"initialValue":{"expression":{"arguments":[{"id":77931,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20426:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78718","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78718","typeString":"contract Mirror"}],"id":77930,"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":77929,"name":"address","nodeType":"ElementaryTypeName","src":"20418:7:161","typeDescriptions":{}}},"id":77932,"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":77933,"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":[77936],"declarations":[{"constant":false,"id":77936,"mutability":"mutable","name":"balance128","nameLocation":"20607:10:161","nodeType":"VariableDeclaration","scope":77949,"src":"20599:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77935,"name":"uint128","nodeType":"ElementaryTypeName","src":"20599:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77941,"initialValue":{"arguments":[{"id":77939,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77928,"src":"20628:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77938,"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":77937,"name":"uint128","nodeType":"ElementaryTypeName","src":"20620:7:161","typeDescriptions":{}}},"id":77940,"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":77942,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77936,"src":"20654:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":77944,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77315,"src":"20681:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77945,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77936,"src":"20692:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77943,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78656,"src":"20666:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77946,"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":77947,"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":77926,"id":77948,"nodeType":"Return","src":"20646:58:161"}]},"documentation":{"id":77918,"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":77921,"kind":"modifierInvocation","modifierName":{"id":77920,"name":"onlyIfExited","nameLocations":["20308:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77407,"src":"20308:12:161"},"nodeType":"ModifierInvocation","src":"20308:12:161"}],"name":"_transferLockedValueToInheritor","nameLocation":"20250:31:161","parameters":{"id":77919,"nodeType":"ParameterList","parameters":[],"src":"20281:2:161"},"returnParameters":{"id":77926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77923,"mutability":"mutable","name":"valueTransferred","nameLocation":"20346:16:161","nodeType":"VariableDeclaration","scope":77950,"src":"20338:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77922,"name":"uint128","nodeType":"ElementaryTypeName","src":"20338:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77925,"mutability":"mutable","name":"transferSuccess","nameLocation":"20369:15:161","nodeType":"VariableDeclaration","scope":77950,"src":"20364:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77924,"name":"bool","nodeType":"ElementaryTypeName","src":"20364:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20337:48:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78048,"nodeType":"FunctionDefinition","src":"21279:1232:161","nodes":[],"body":{"id":78047,"nodeType":"Block","src":"21363:1148:161","nodes":[],"statements":[{"assignments":[77961],"declarations":[{"constant":false,"id":77961,"mutability":"mutable","name":"messagesLen","nameLocation":"21381:11:161","nodeType":"VariableDeclaration","scope":78047,"src":"21373:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77960,"name":"uint256","nodeType":"ElementaryTypeName","src":"21373:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77964,"initialValue":{"expression":{"id":77962,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"21395:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83067_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":77963,"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":[77966],"declarations":[{"constant":false,"id":77966,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"21429:18:161","nodeType":"VariableDeclaration","scope":78047,"src":"21421:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77965,"name":"uint256","nodeType":"ElementaryTypeName","src":"21421:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77970,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77967,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77961,"src":"21450:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77968,"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":[77972],"declarations":[{"constant":false,"id":77972,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"21484:20:161","nodeType":"VariableDeclaration","scope":78047,"src":"21476:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77971,"name":"uint256","nodeType":"ElementaryTypeName","src":"21476:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77977,"initialValue":{"arguments":[{"id":77975,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77966,"src":"21523:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77973,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21507:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":77974,"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":77976,"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":[77979],"declarations":[{"constant":false,"id":77979,"mutability":"mutable","name":"offset","nameLocation":"21560:6:161","nodeType":"VariableDeclaration","scope":78047,"src":"21552:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77978,"name":"uint256","nodeType":"ElementaryTypeName","src":"21552:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77981,"initialValue":{"hexValue":"30","id":77980,"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":78038,"nodeType":"Block","src":"21623:785:161","statements":[{"assignments":[77996],"declarations":[{"constant":false,"id":77996,"mutability":"mutable","name":"message","nameLocation":"21659:7:161","nodeType":"VariableDeclaration","scope":78038,"src":"21637:29:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":77995,"nodeType":"UserDefinedTypeName","pathNode":{"id":77994,"name":"Gear.Message","nameLocations":["21637:4:161","21642:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83067,"src":"21637:12:161"},"referencedDeclaration":83067,"src":"21637:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":78000,"initialValue":{"baseExpression":{"id":77997,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"21669:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83067_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":77999,"indexExpression":{"id":77998,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77983,"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_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"21637:44:161"},{"assignments":[78003],"declarations":[{"constant":false,"id":78003,"mutability":"mutable","name":"messageHash","nameLocation":"21787:11:161","nodeType":"VariableDeclaration","scope":78038,"src":"21779:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78002,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21779:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":78008,"initialValue":{"arguments":[{"id":78006,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77996,"src":"21818:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":78004,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"21801:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":78005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21806:11:161","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":83350,"src":"21801:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$83067_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":78007,"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":78012,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77972,"src":"21990:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78013,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77979,"src":"22012:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78014,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78003,"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":78009,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21964:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78011,"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":78015,"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":78016,"nodeType":"ExpressionStatement","src":"21964:68:161"},{"id":78021,"nodeType":"UncheckedBlock","src":"22046:55:161","statements":[{"expression":{"id":78019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78017,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77979,"src":"22074:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78018,"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":78020,"nodeType":"ExpressionStatement","src":"22074:12:161"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78022,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77996,"src":"22240:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22248:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"22240:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22261:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83099,"src":"22240:23:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78025,"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":78036,"nodeType":"Block","src":"22339:59:161","statements":[{"expression":{"arguments":[{"id":78033,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77996,"src":"22375:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78032,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78443,"src":"22357:17:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83067_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":"22357:26:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78035,"nodeType":"ExpressionStatement","src":"22357:26:161"}]},"id":78037,"nodeType":"IfStatement","src":"22236:162:161","trueBody":{"id":78031,"nodeType":"Block","src":"22270:63:161","statements":[{"expression":{"arguments":[{"id":78028,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77996,"src":"22310:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78027,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78102,"src":"22288:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83067_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78029,"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":78030,"nodeType":"ExpressionStatement","src":"22288:30:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77983,"src":"21601:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":77987,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77961,"src":"21605:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21601:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78039,"initializationExpression":{"assignments":[77983],"declarations":[{"constant":false,"id":77983,"mutability":"mutable","name":"i","nameLocation":"21594:1:161","nodeType":"VariableDeclaration","scope":78039,"src":"21586:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77982,"name":"uint256","nodeType":"ElementaryTypeName","src":"21586:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77985,"initialValue":{"hexValue":"30","id":77984,"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":77990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"21618:3:161","subExpression":{"id":77989,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77983,"src":"21618:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77991,"nodeType":"ExpressionStatement","src":"21618:3:161"},"nodeType":"ForStatement","src":"21581:827:161"},{"expression":{"arguments":[{"id":78042,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77972,"src":"22460:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78043,"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":78044,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77966,"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":78040,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"22425:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78041,"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":78045,"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":77959,"id":78046,"nodeType":"Return","src":"22418:86:161"}]},"documentation":{"id":77951,"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":77956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77955,"mutability":"mutable","name":"_messages","nameLocation":"21326:9:161","nodeType":"VariableDeclaration","scope":78048,"src":"21302:33:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83067_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":77953,"nodeType":"UserDefinedTypeName","pathNode":{"id":77952,"name":"Gear.Message","nameLocations":["21302:4:161","21307:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83067,"src":"21302:12:161"},"referencedDeclaration":83067,"src":"21302:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_storage_ptr","typeString":"struct Gear.Message"}},"id":77954,"nodeType":"ArrayTypeName","src":"21302:14:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83067_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"21301:35:161"},"returnParameters":{"id":77959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78048,"src":"21354:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21354:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21353:9:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78102,"nodeType":"FunctionDefinition","src":"23021:1125:161","nodes":[],"body":{"id":78101,"nodeType":"Block","src":"23092:1054:161","nodes":[],"statements":[{"condition":{"id":78058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23278:37:161","subExpression":{"arguments":[{"id":78056,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"23306:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78055,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78312,"src":"23279:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83067_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":78057,"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":78100,"nodeType":"IfStatement","src":"23274:866:161","trueBody":{"id":78099,"nodeType":"Block","src":"23317:823:161","statements":[{"condition":{"expression":{"id":78059,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"23585:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23594:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"23585:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78087,"nodeType":"IfStatement","src":"23581:453:161","trueBody":{"id":78086,"nodeType":"Block","src":"23600:434:161","statements":[{"assignments":[78062,null],"declarations":[{"constant":false,"id":78062,"mutability":"mutable","name":"success","nameLocation":"23624:7:161","nodeType":"VariableDeclaration","scope":78086,"src":"23619:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78061,"name":"bool","nodeType":"ElementaryTypeName","src":"23619:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78071,"initialValue":{"arguments":[{"expression":{"id":78068,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"23676:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83056,"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":78063,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"23636:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23645:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"23636:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78065,"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":78067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78066,"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":78070,"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":78073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23716:8:161","subExpression":{"id":78072,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"23717:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78085,"nodeType":"IfStatement","src":"23712:308:161","trueBody":{"id":78084,"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":78075,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"23923:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23932:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83050,"src":"23923:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78077,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"23936:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23945:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"23936:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78079,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"23958:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23967:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"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":78074,"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":78081,"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":78082,"nodeType":"EmitStatement","src":"23900:73:161"},{"functionReturnParameters":78054,"id":78083,"nodeType":"Return","src":"23995:7:161"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":78089,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"24061:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24070:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83050,"src":"24061:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78091,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"24074:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24083:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"24074:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78093,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"24096:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24105:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83056,"src":"24096:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78095,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"24114:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24123:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"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":78088,"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":78097,"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":78098,"nodeType":"EmitStatement","src":"24048:81:161"}]}}]},"documentation":{"id":78049,"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":78053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78052,"mutability":"mutable","name":"_message","nameLocation":"23074:8:161","nodeType":"VariableDeclaration","scope":78102,"src":"23052:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78051,"nodeType":"UserDefinedTypeName","pathNode":{"id":78050,"name":"Gear.Message","nameLocations":["23052:4:161","23057:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83067,"src":"23052:12:161"},"referencedDeclaration":83067,"src":"23052:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"23051:32:161"},"returnParameters":{"id":78054,"nodeType":"ParameterList","parameters":[],"src":"23092:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78312,"nodeType":"FunctionDefinition","src":"27225:3845:161","nodes":[],"body":{"id":78311,"nodeType":"Block","src":"27329:3741:161","nodes":[],"statements":[{"assignments":[78112],"declarations":[{"constant":false,"id":78112,"mutability":"mutable","name":"payload","nameLocation":"27354:7:161","nodeType":"VariableDeclaration","scope":78311,"src":"27339:22:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78111,"name":"bytes","nodeType":"ElementaryTypeName","src":"27339:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78115,"initialValue":{"expression":{"id":78113,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78106,"src":"27364:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27373:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83056,"src":"27364:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27339:41:161"},{"condition":{"id":78131,"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":78129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78116,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78106,"src":"27397:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27406:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"27397:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":78118,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"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":78123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78120,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78106,"src":"27439:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27448:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"27439:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78122,"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":78128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78125,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78112,"src":"27462:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78126,"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":78127,"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":78130,"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":78135,"nodeType":"IfStatement","src":"27391:129:161","trueBody":{"id":78134,"nodeType":"Block","src":"27483:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78132,"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":78110,"id":78133,"nodeType":"Return","src":"27497:12:161"}]}},{"assignments":[78137],"declarations":[{"constant":false,"id":78137,"mutability":"mutable","name":"topicsLength","nameLocation":"27538:12:161","nodeType":"VariableDeclaration","scope":78311,"src":"27530:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78136,"name":"uint256","nodeType":"ElementaryTypeName","src":"27530:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78138,"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":78112,"isOffset":true,"isSlot":false,"src":"27783:14:161","suffix":"offset","valueSize":1},{"declaration":78137,"isOffset":false,"isSlot":false,"src":"27745:12:161","valueSize":1}],"flags":["memory-safe"],"id":78139,"nodeType":"InlineAssembly","src":"27560:249:161"},{"condition":{"id":78148,"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":78146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78140,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"27825:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":78141,"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":78145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78143,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"27846:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":78144,"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":78147,"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":78152,"nodeType":"IfStatement","src":"27819:84:161","trueBody":{"id":78151,"nodeType":"Block","src":"27866:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78149,"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":78110,"id":78150,"nodeType":"Return","src":"27880:12:161"}]}},{"assignments":[78154],"declarations":[{"constant":false,"id":78154,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"27921:19:161","nodeType":"VariableDeclaration","scope":78311,"src":"27913:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78153,"name":"uint256","nodeType":"ElementaryTypeName","src":"27913:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78155,"nodeType":"VariableDeclarationStatement","src":"27913:27:161"},{"id":78164,"nodeType":"UncheckedBlock","src":"27950:78:161","statements":[{"expression":{"id":78162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78156,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78154,"src":"27974:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":78157,"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":78160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78158,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"28000:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78159,"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":78163,"nodeType":"ExpressionStatement","src":"27974:43:161"}]},{"condition":{"id":78170,"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":78168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78165,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78112,"src":"28044:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78166,"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":78167,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78154,"src":"28062:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28044:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78169,"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":78174,"nodeType":"IfStatement","src":"28038:83:161","trueBody":{"id":78173,"nodeType":"Block","src":"28084:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78171,"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":78110,"id":78172,"nodeType":"Return","src":"28098:12:161"}]}},{"assignments":[78177],"declarations":[{"constant":false,"id":78177,"mutability":"mutable","name":"topic1","nameLocation":"28224:6:161","nodeType":"VariableDeclaration","scope":78311,"src":"28216:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78176,"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":78178,"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":78112,"isOffset":true,"isSlot":false,"src":"28306:14:161","suffix":"offset","valueSize":1},{"declaration":78177,"isOffset":false,"isSlot":false,"src":"28279:6:161","valueSize":1}],"flags":["memory-safe"],"id":78179,"nodeType":"InlineAssembly","src":"28240:95:161"},{"condition":{"id":78250,"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":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_bool","typeString":"bool"},"id":78188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78180,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"28906:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78181,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"28916:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78182,"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":78187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78184,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"28953:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78185,"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":78186,"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":78192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78189,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29012:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78190,"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":78191,"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":78197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78194,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29069:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78195,"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":78196,"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":78202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78199,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29126:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78200,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"29136:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78201,"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":78207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78204,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29187:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78205,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"29197:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78206,"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":78212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78209,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29253:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78210,"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":78211,"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":78217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78214,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29295:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78215,"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":78216,"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":78222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78219,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29347:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78220,"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":78221,"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":78227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78224,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29387:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78225,"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":78226,"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":78232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78229,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29437:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78230,"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":78231,"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":78237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78234,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29484:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78235,"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":78236,"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":78242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78239,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29555:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78240,"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":78241,"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":78247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78244,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29609:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78245,"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":78246,"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":78249,"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":78254,"nodeType":"IfStatement","src":"28887:806:161","trueBody":{"id":78253,"nodeType":"Block","src":"29656:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78251,"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":78110,"id":78252,"nodeType":"Return","src":"29670:12:161"}]}},{"assignments":[78256],"declarations":[{"constant":false,"id":78256,"mutability":"mutable","name":"size","nameLocation":"29744:4:161","nodeType":"VariableDeclaration","scope":78311,"src":"29736:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78255,"name":"uint256","nodeType":"ElementaryTypeName","src":"29736:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78257,"nodeType":"VariableDeclarationStatement","src":"29736:12:161"},{"id":78265,"nodeType":"UncheckedBlock","src":"29758:78:161","statements":[{"expression":{"id":78263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78258,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78256,"src":"29782:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78259,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78112,"src":"29789:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78260,"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":78261,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78154,"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":78264,"nodeType":"ExpressionStatement","src":"29782:43:161"}]},{"assignments":[78267],"declarations":[{"constant":false,"id":78267,"mutability":"mutable","name":"memPtr","nameLocation":"29854:6:161","nodeType":"VariableDeclaration","scope":78311,"src":"29846:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78266,"name":"uint256","nodeType":"ElementaryTypeName","src":"29846:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78272,"initialValue":{"arguments":[{"id":78270,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78256,"src":"29879:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78268,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"29863:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78269,"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":78271,"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":78267,"isOffset":false,"isSlot":false,"src":"29946:6:161","valueSize":1},{"declaration":78112,"isOffset":true,"isSlot":false,"src":"29958:14:161","suffix":"offset","valueSize":1},{"declaration":78256,"isOffset":false,"isSlot":false,"src":"29996:4:161","valueSize":1},{"declaration":78154,"isOffset":false,"isSlot":false,"src":"29974:19:161","valueSize":1}],"flags":["memory-safe"],"id":78273,"nodeType":"InlineAssembly","src":"29894:117:161"},{"assignments":[78276],"declarations":[{"constant":false,"id":78276,"mutability":"mutable","name":"topic2","nameLocation":"30166:6:161","nodeType":"VariableDeclaration","scope":78311,"src":"30158:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78275,"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":78277,"nodeType":"VariableDeclarationStatement","src":"30158:14:161"},{"assignments":[78279],"declarations":[{"constant":false,"id":78279,"mutability":"mutable","name":"topic3","nameLocation":"30190:6:161","nodeType":"VariableDeclaration","scope":78311,"src":"30182:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30182:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78280,"nodeType":"VariableDeclarationStatement","src":"30182:14:161"},{"assignments":[78282],"declarations":[{"constant":false,"id":78282,"mutability":"mutable","name":"topic4","nameLocation":"30214:6:161","nodeType":"VariableDeclaration","scope":78311,"src":"30206:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30206:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78283,"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":78112,"isOffset":true,"isSlot":false,"src":"30296:14:161","suffix":"offset","valueSize":1},{"declaration":78112,"isOffset":true,"isSlot":false,"src":"30356:14:161","suffix":"offset","valueSize":1},{"declaration":78112,"isOffset":true,"isSlot":false,"src":"30416:14:161","suffix":"offset","valueSize":1},{"declaration":78276,"isOffset":false,"isSlot":false,"src":"30269:6:161","valueSize":1},{"declaration":78279,"isOffset":false,"isSlot":false,"src":"30329:6:161","valueSize":1},{"declaration":78282,"isOffset":false,"isSlot":false,"src":"30389:6:161","valueSize":1}],"flags":["memory-safe"],"id":78284,"nodeType":"InlineAssembly","src":"30230:216:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78285,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"30460:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":78286,"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":78292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78290,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"30596:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":78291,"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":78297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78295,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"30740:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":78296,"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":78302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78300,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"30892:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":78301,"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":78305,"nodeType":"IfStatement","src":"30888:154:161","trueBody":{"id":78304,"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":78267,"isOffset":false,"isSlot":false,"src":"30973:6:161","valueSize":1},{"declaration":78256,"isOffset":false,"isSlot":false,"src":"30981:4:161","valueSize":1},{"declaration":78177,"isOffset":false,"isSlot":false,"src":"30987:6:161","valueSize":1},{"declaration":78276,"isOffset":false,"isSlot":false,"src":"30995:6:161","valueSize":1},{"declaration":78279,"isOffset":false,"isSlot":false,"src":"31003:6:161","valueSize":1},{"declaration":78282,"isOffset":false,"isSlot":false,"src":"31011:6:161","valueSize":1}],"flags":["memory-safe"],"id":78303,"nodeType":"InlineAssembly","src":"30925:107:161"}]}},"id":78306,"nodeType":"IfStatement","src":"30736:306:161","trueBody":{"id":78299,"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":78267,"isOffset":false,"isSlot":false,"src":"30821:6:161","valueSize":1},{"declaration":78256,"isOffset":false,"isSlot":false,"src":"30829:4:161","valueSize":1},{"declaration":78177,"isOffset":false,"isSlot":false,"src":"30835:6:161","valueSize":1},{"declaration":78276,"isOffset":false,"isSlot":false,"src":"30843:6:161","valueSize":1},{"declaration":78279,"isOffset":false,"isSlot":false,"src":"30851:6:161","valueSize":1}],"flags":["memory-safe"],"id":78298,"nodeType":"InlineAssembly","src":"30773:99:161"}]}},"id":78307,"nodeType":"IfStatement","src":"30592:450:161","trueBody":{"id":78294,"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":78267,"isOffset":false,"isSlot":false,"src":"30677:6:161","valueSize":1},{"declaration":78256,"isOffset":false,"isSlot":false,"src":"30685:4:161","valueSize":1},{"declaration":78177,"isOffset":false,"isSlot":false,"src":"30691:6:161","valueSize":1},{"declaration":78276,"isOffset":false,"isSlot":false,"src":"30699:6:161","valueSize":1}],"flags":["memory-safe"],"id":78293,"nodeType":"InlineAssembly","src":"30629:91:161"}]}},"id":78308,"nodeType":"IfStatement","src":"30456:586:161","trueBody":{"id":78289,"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":78267,"isOffset":false,"isSlot":false,"src":"30541:6:161","valueSize":1},{"declaration":78256,"isOffset":false,"isSlot":false,"src":"30549:4:161","valueSize":1},{"declaration":78177,"isOffset":false,"isSlot":false,"src":"30555:6:161","valueSize":1}],"flags":["memory-safe"],"id":78288,"nodeType":"InlineAssembly","src":"30493:83:161"}]}},{"expression":{"hexValue":"74727565","id":78309,"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":78110,"id":78310,"nodeType":"Return","src":"31052:11:161"}]},"documentation":{"id":78103,"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":78107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78106,"mutability":"mutable","name":"_message","nameLocation":"27283:8:161","nodeType":"VariableDeclaration","scope":78312,"src":"27261:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78105,"nodeType":"UserDefinedTypeName","pathNode":{"id":78104,"name":"Gear.Message","nameLocations":["27261:4:161","27266:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83067,"src":"27261:12:161"},"referencedDeclaration":83067,"src":"27261:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"27260:32:161"},"returnParameters":{"id":78110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78109,"mutability":"mutable","name":"isSailsEvent","nameLocation":"27315:12:161","nodeType":"VariableDeclaration","scope":78312,"src":"27310:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78108,"name":"bool","nodeType":"ElementaryTypeName","src":"27310:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27309:19:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78443,"nodeType":"FunctionDefinition","src":"37037:1645:161","nodes":[],"body":{"id":78442,"nodeType":"Block","src":"37104:1578:161","nodes":[],"statements":[{"condition":{"expression":{"id":78319,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37118:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37127:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"37118:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78440,"nodeType":"Block","src":"38333:343:161","statements":[{"assignments":[78408],"declarations":[{"constant":false,"id":78408,"mutability":"mutable","name":"transferSuccess","nameLocation":"38352:15:161","nodeType":"VariableDeclaration","scope":78440,"src":"38347:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78407,"name":"bool","nodeType":"ElementaryTypeName","src":"38347:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78415,"initialValue":{"arguments":[{"expression":{"id":78410,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38385:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38394:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"38385:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78412,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38407:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38416:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"38407:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78409,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78656,"src":"38370:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78414,"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":78417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38440:16:161","subExpression":{"id":78416,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78408,"src":"38441:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78426,"nodeType":"IfStatement","src":"38436:117:161","trueBody":{"id":78425,"nodeType":"Block","src":"38458:95:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78419,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38501:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38510:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"38501:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78421,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38523:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38532:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"38523:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78418,"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":78423,"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":78424,"nodeType":"EmitStatement","src":"38476:62:161"}]}},{"eventCall":{"arguments":[{"expression":{"id":78428,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38578:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38587:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83056,"src":"38578:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78430,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38605:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"38596:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78432,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38612:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38621:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"38612:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38634:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83099,"src":"38612:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78435,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38638:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38647:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"38638:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38660:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83102,"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":78427,"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":78438,"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":78439,"nodeType":"EmitStatement","src":"38567:98:161"}]},"id":78441,"nodeType":"IfStatement","src":"37114:1562:161","trueBody":{"id":78406,"nodeType":"Block","src":"37133:1194:161","statements":[{"assignments":[78322],"declarations":[{"constant":false,"id":78322,"mutability":"mutable","name":"isSuccessReply","nameLocation":"37152:14:161","nodeType":"VariableDeclaration","scope":78406,"src":"37147:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78321,"name":"bool","nodeType":"ElementaryTypeName","src":"37147:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78330,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":78329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":78323,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37169:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37178:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"37169:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37191:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83102,"src":"37169:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":78327,"indexExpression":{"hexValue":"30","id":78326,"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":78328,"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":[78332],"declarations":[{"constant":false,"id":78332,"mutability":"mutable","name":"payload","nameLocation":"37231:7:161","nodeType":"VariableDeclaration","scope":78406,"src":"37218:20:161","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78331,"name":"bytes","nodeType":"ElementaryTypeName","src":"37218:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78333,"nodeType":"VariableDeclarationStatement","src":"37218:20:161"},{"condition":{"id":78334,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78322,"src":"37257:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78357,"nodeType":"Block","src":"37338:348:161","statements":[{"expression":{"id":78355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78341,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78332,"src":"37508:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":78344,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"37562:10:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73742_$","typeString":"type(contract ICallbacks)"}},"id":78345,"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":78346,"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":78347,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37605:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83050,"src":"37596:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78349,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37609:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37618:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83056,"src":"37609:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":78351,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37627:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37636:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"37627:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37649:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83102,"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":78342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37518:3:161","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78343,"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":78354,"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":78356,"nodeType":"ExpressionStatement","src":"37508:163:161"}]},"id":78358,"nodeType":"IfStatement","src":"37253:433:161","trueBody":{"id":78340,"nodeType":"Block","src":"37273:59:161","statements":[{"expression":{"id":78338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78335,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78332,"src":"37291:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78336,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37301:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37310:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83056,"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":78339,"nodeType":"ExpressionStatement","src":"37291:26:161"}]}},{"assignments":[78360,null],"declarations":[{"constant":false,"id":78360,"mutability":"mutable","name":"success","nameLocation":"37706:7:161","nodeType":"VariableDeclaration","scope":78406,"src":"37701:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78359,"name":"bool","nodeType":"ElementaryTypeName","src":"37701:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78370,"initialValue":{"arguments":[{"id":78368,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78332,"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":78361,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37718:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37727:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"37718:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78363,"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":78367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78364,"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":78365,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37765:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37774:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"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":78369,"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":78372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37808:8:161","subExpression":{"id":78371,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78360,"src":"37809:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78405,"nodeType":"IfStatement","src":"37804:513:161","trueBody":{"id":78404,"nodeType":"Block","src":"37818:499:161","statements":[{"assignments":[78374],"declarations":[{"constant":false,"id":78374,"mutability":"mutable","name":"transferSuccess","nameLocation":"37841:15:161","nodeType":"VariableDeclaration","scope":78404,"src":"37836:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78373,"name":"bool","nodeType":"ElementaryTypeName","src":"37836:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78381,"initialValue":{"arguments":[{"expression":{"id":78376,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37874:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37883:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"37874:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78378,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37896:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37905:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"37896:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78375,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78656,"src":"37859:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78380,"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":78383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37933:16:161","subExpression":{"id":78382,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78374,"src":"37934:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78392,"nodeType":"IfStatement","src":"37929:125:161","trueBody":{"id":78391,"nodeType":"Block","src":"37951:103:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78385,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"37998:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38007:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83053,"src":"37998:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78387,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38020:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38029:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"38020:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78384,"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":78389,"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":78390,"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":78394,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38233:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38242:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"38233:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78396,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38249:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38258:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"38249:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38271:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83099,"src":"38249:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78399,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"38275:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38284:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"38275:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83103_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38297:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83102,"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":78393,"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":78402,"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":78403,"nodeType":"EmitStatement","src":"38212:90:161"}]}}]}}]},"documentation":{"id":78313,"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":78317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78316,"mutability":"mutable","name":"_message","nameLocation":"37086:8:161","nodeType":"VariableDeclaration","scope":78443,"src":"37064:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78315,"nodeType":"UserDefinedTypeName","pathNode":{"id":78314,"name":"Gear.Message","nameLocations":["37064:4:161","37069:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83067,"src":"37064:12:161"},"referencedDeclaration":83067,"src":"37064:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83067_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"37063:32:161"},"returnParameters":{"id":78318,"nodeType":"ParameterList","parameters":[],"src":"37104:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78556,"nodeType":"FunctionDefinition","src":"39220:1028:161","nodes":[],"body":{"id":78555,"nodeType":"Block","src":"39315:933:161","nodes":[],"statements":[{"assignments":[78454],"declarations":[{"constant":false,"id":78454,"mutability":"mutable","name":"claimsLen","nameLocation":"39333:9:161","nodeType":"VariableDeclaration","scope":78555,"src":"39325:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78453,"name":"uint256","nodeType":"ElementaryTypeName","src":"39325:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78457,"initialValue":{"expression":{"id":78455,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78448,"src":"39345:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83173_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78456,"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":[78459],"declarations":[{"constant":false,"id":78459,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"39377:16:161","nodeType":"VariableDeclaration","scope":78555,"src":"39369:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78458,"name":"uint256","nodeType":"ElementaryTypeName","src":"39369:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78463,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78460,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78454,"src":"39396:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78461,"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":[78465],"declarations":[{"constant":false,"id":78465,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"39428:18:161","nodeType":"VariableDeclaration","scope":78555,"src":"39420:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78464,"name":"uint256","nodeType":"ElementaryTypeName","src":"39420:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78470,"initialValue":{"arguments":[{"id":78468,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78459,"src":"39465:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78466,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39449:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78467,"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":78469,"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":[78472],"declarations":[{"constant":false,"id":78472,"mutability":"mutable","name":"offset","nameLocation":"39500:6:161","nodeType":"VariableDeclaration","scope":78555,"src":"39492:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78471,"name":"uint256","nodeType":"ElementaryTypeName","src":"39492:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78474,"initialValue":{"hexValue":"30","id":78473,"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":78546,"nodeType":"Block","src":"39561:588:161","statements":[{"assignments":[78489],"declarations":[{"constant":false,"id":78489,"mutability":"mutable","name":"claim","nameLocation":"39600:5:161","nodeType":"VariableDeclaration","scope":78546,"src":"39575:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":78488,"nodeType":"UserDefinedTypeName","pathNode":{"id":78487,"name":"Gear.ValueClaim","nameLocations":["39575:4:161","39580:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83173,"src":"39575:15:161"},"referencedDeclaration":83173,"src":"39575:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":78493,"initialValue":{"baseExpression":{"id":78490,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78448,"src":"39608:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83173_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78492,"indexExpression":{"id":78491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78476,"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_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"39575:43:161"},{"assignments":[78495],"declarations":[{"constant":false,"id":78495,"mutability":"mutable","name":"claimHash","nameLocation":"39640:9:161","nodeType":"VariableDeclaration","scope":78546,"src":"39632:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78494,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39632:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78505,"initialValue":{"arguments":[{"expression":{"id":78498,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"39672:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39678:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83168,"src":"39672:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78500,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"39689:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39695:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"39689:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78502,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"39708:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39714:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"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":78496,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"39652:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":78497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39657:14:161","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":83372,"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":78504,"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":78509,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78465,"src":"39760:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78510,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78472,"src":"39780:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78511,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78495,"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":78506,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39734:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78508,"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":78512,"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":78513,"nodeType":"ExpressionStatement","src":"39734:64:161"},{"id":78518,"nodeType":"UncheckedBlock","src":"39812:55:161","statements":[{"expression":{"id":78516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78514,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78472,"src":"39840:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78515,"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":78517,"nodeType":"ExpressionStatement","src":"39840:12:161"}]},{"assignments":[78520],"declarations":[{"constant":false,"id":78520,"mutability":"mutable","name":"success","nameLocation":"39886:7:161","nodeType":"VariableDeclaration","scope":78546,"src":"39881:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78519,"name":"bool","nodeType":"ElementaryTypeName","src":"39881:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78527,"initialValue":{"arguments":[{"expression":{"id":78522,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"39911:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39917:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"39911:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78524,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"39930:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39936:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"39930:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78521,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78656,"src":"39896:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78526,"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":78528,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78520,"src":"39960:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78544,"nodeType":"Block","src":"40055:84:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78538,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"40095:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40101:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83168,"src":"40095:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78540,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"40112:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40118:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"40112:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78537,"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":78542,"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":78543,"nodeType":"EmitStatement","src":"40073:51:161"}]},"id":78545,"nodeType":"IfStatement","src":"39956:183:161","trueBody":{"id":78536,"nodeType":"Block","src":"39969:80:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78530,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"40005:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40011:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83168,"src":"40005:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78532,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"40022:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40028:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"40022:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78529,"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":78534,"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":78535,"nodeType":"EmitStatement","src":"39987:47:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78479,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78476,"src":"39541:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78480,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78454,"src":"39545:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39541:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78547,"initializationExpression":{"assignments":[78476],"declarations":[{"constant":false,"id":78476,"mutability":"mutable","name":"i","nameLocation":"39534:1:161","nodeType":"VariableDeclaration","scope":78547,"src":"39526:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78475,"name":"uint256","nodeType":"ElementaryTypeName","src":"39526:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78478,"initialValue":{"hexValue":"30","id":78477,"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":78483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39556:3:161","subExpression":{"id":78482,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78476,"src":"39556:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78484,"nodeType":"ExpressionStatement","src":"39556:3:161"},"nodeType":"ForStatement","src":"39521:628:161"},{"expression":{"arguments":[{"id":78550,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78465,"src":"40201:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78551,"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":78552,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78459,"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":78548,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"40166:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78549,"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":78553,"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":78452,"id":78554,"nodeType":"Return","src":"40159:82:161"}]},"documentation":{"id":78444,"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":78449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78448,"mutability":"mutable","name":"_claims","nameLocation":"39269:7:161","nodeType":"VariableDeclaration","scope":78556,"src":"39242:34:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83173_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":78446,"nodeType":"UserDefinedTypeName","pathNode":{"id":78445,"name":"Gear.ValueClaim","nameLocations":["39242:4:161","39247:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83173,"src":"39242:15:161"},"referencedDeclaration":83173,"src":"39242:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83173_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":78447,"nodeType":"ArrayTypeName","src":"39242:17:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83173_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"39241:36:161"},"returnParameters":{"id":78452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78451,"mutability":"mutable","name":"claimsHash","nameLocation":"39303:10:161","nodeType":"VariableDeclaration","scope":78556,"src":"39295:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39295:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39294:20:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78589,"nodeType":"FunctionDefinition","src":"40514:586:161","nodes":[],"body":{"id":78588,"nodeType":"Block","src":"40578:522:161","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":78566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78564,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77312,"src":"40643:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78565,"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":78567,"nodeType":"ExpressionStatement","src":"40643:13:161"},{"expression":{"id":78570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78568,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77315,"src":"40666:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78569,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78559,"src":"40678:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"40666:22:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78571,"nodeType":"ExpressionStatement","src":"40666:22:161"},{"assignments":[78573,78575],"declarations":[{"constant":false,"id":78573,"mutability":"mutable","name":"value","nameLocation":"40797:5:161","nodeType":"VariableDeclaration","scope":78588,"src":"40789:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78572,"name":"uint128","nodeType":"ElementaryTypeName","src":"40789:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":78575,"mutability":"mutable","name":"success","nameLocation":"40809:7:161","nodeType":"VariableDeclaration","scope":78588,"src":"40804:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78574,"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":78578,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78576,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77950,"src":"40820:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":78577,"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":78580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"40867:8:161","subExpression":{"id":78579,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78575,"src":"40868:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78587,"nodeType":"IfStatement","src":"40863:231:161","trueBody":{"id":78586,"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":78582,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78559,"src":"41065:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78583,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78573,"src":"41077:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78581,"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":78584,"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":78585,"nodeType":"EmitStatement","src":"41023:60:161"}]}}]},"documentation":{"id":78557,"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":78562,"kind":"modifierInvocation","modifierName":{"id":78561,"name":"onlyIfActive","nameLocations":["40565:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77387,"src":"40565:12:161"},"nodeType":"ModifierInvocation","src":"40565:12:161"}],"name":"_setInheritor","nameLocation":"40523:13:161","parameters":{"id":78560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78559,"mutability":"mutable","name":"_inheritor","nameLocation":"40545:10:161","nodeType":"VariableDeclaration","scope":78589,"src":"40537:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78558,"name":"address","nodeType":"ElementaryTypeName","src":"40537:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40536:20:161"},"returnParameters":{"id":78563,"nodeType":"ParameterList","parameters":[],"src":"40578:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78604,"nodeType":"FunctionDefinition","src":"41203:281:161","nodes":[],"body":{"id":78603,"nodeType":"Block","src":"41257:227:161","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":78597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78595,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77306,"src":"41323:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78596,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78592,"src":"41335:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41323:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78598,"nodeType":"ExpressionStatement","src":"41323:22:161"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":78600,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77306,"src":"41467:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78599,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"41454:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78601,"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":78602,"nodeType":"EmitStatement","src":"41449:28:161"}]},"documentation":{"id":78590,"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":78593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78592,"mutability":"mutable","name":"_stateHash","nameLocation":"41237:10:161","nodeType":"VariableDeclaration","scope":78604,"src":"41229:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41229:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41228:20:161"},"returnParameters":{"id":78594,"nodeType":"ParameterList","parameters":[],"src":"41257:0:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78626,"nodeType":"FunctionDefinition","src":"41658:182:161","nodes":[],"body":{"id":78625,"nodeType":"Block","src":"41730:110:161","nodes":[],"statements":[{"assignments":[78614],"declarations":[{"constant":false,"id":78614,"mutability":"mutable","name":"wvaraAddr","nameLocation":"41748:9:161","nodeType":"VariableDeclaration","scope":78625,"src":"41740:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78613,"name":"address","nodeType":"ElementaryTypeName","src":"41740:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78620,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78616,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78607,"src":"41768:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78615,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74985,"src":"41760:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74985_$","typeString":"type(contract IRouter)"}},"id":78617,"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_$74985","typeString":"contract IRouter"}},"id":78618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41780:11:161","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74679,"src":"41760:31:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78619,"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":78622,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78614,"src":"41823:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78621,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"41810:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75001_$","typeString":"type(contract IWrappedVara)"}},"id":78623,"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_$75001","typeString":"contract IWrappedVara"}},"functionReturnParameters":78612,"id":78624,"nodeType":"Return","src":"41803:30:161"}]},"documentation":{"id":78605,"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":78608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78607,"mutability":"mutable","name":"routerAddr","nameLocation":"41682:10:161","nodeType":"VariableDeclaration","scope":78626,"src":"41674:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78606,"name":"address","nodeType":"ElementaryTypeName","src":"41674:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41673:20:161"},"returnParameters":{"id":78612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78626,"src":"41716:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"},"typeName":{"id":78610,"nodeType":"UserDefinedTypeName","pathNode":{"id":78609,"name":"IWrappedVara","nameLocations":["41716:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":75001,"src":"41716:12:161"},"referencedDeclaration":75001,"src":"41716:12:161","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"41715:14:161"},"scope":78718,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78656,"nodeType":"FunctionDefinition","src":"42082:253:161","nodes":[],"body":{"id":78655,"nodeType":"Block","src":"42165:170:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78636,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78631,"src":"42179:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78637,"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":78652,"nodeType":"IfStatement","src":"42175:133:161","trueBody":{"id":78651,"nodeType":"Block","src":"42191:117:161","statements":[{"assignments":[78640,null],"declarations":[{"constant":false,"id":78640,"mutability":"mutable","name":"success","nameLocation":"42211:7:161","nodeType":"VariableDeclaration","scope":78651,"src":"42206:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78639,"name":"bool","nodeType":"ElementaryTypeName","src":"42206:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78648,"initialValue":{"arguments":[{"hexValue":"","id":78646,"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":78641,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78629,"src":"42223:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78642,"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":78645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":78643,"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":78644,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78631,"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":78647,"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":78649,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"42290:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78635,"id":78650,"nodeType":"Return","src":"42283:14:161"}]}},{"expression":{"hexValue":"74727565","id":78653,"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":78635,"id":78654,"nodeType":"Return","src":"42317:11:161"}]},"documentation":{"id":78627,"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":78632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78629,"mutability":"mutable","name":"destination","nameLocation":"42114:11:161","nodeType":"VariableDeclaration","scope":78656,"src":"42106:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78628,"name":"address","nodeType":"ElementaryTypeName","src":"42106:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78631,"mutability":"mutable","name":"value","nameLocation":"42135:5:161","nodeType":"VariableDeclaration","scope":78656,"src":"42127:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78630,"name":"uint128","nodeType":"ElementaryTypeName","src":"42127:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"42105:36:161"},"returnParameters":{"id":78635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78656,"src":"42159:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78633,"name":"bool","nodeType":"ElementaryTypeName","src":"42159:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42158:6:161"},"scope":78718,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78717,"nodeType":"FunctionDefinition","src":"42636:1106:161","nodes":[],"body":{"id":78716,"nodeType":"Block","src":"42678:1064:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78662,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42692:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78663,"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":78664,"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":78670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78666,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42709:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78667,"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":78668,"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":78669,"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":78692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42853:8:161","subExpression":{"id":78685,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77321,"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":78691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78687,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42865:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78688,"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":78689,"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":78690,"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":78713,"nodeType":"Block","src":"43683:53:161","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78710,"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":78711,"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":78712,"nodeType":"RevertStatement","src":"43697:28:161"}]},"id":78714,"nodeType":"IfStatement","src":"42849:887:161","trueBody":{"id":78709,"nodeType":"Block","src":"42890:787:161","statements":[{"assignments":[78695],"declarations":[{"constant":false,"id":78695,"mutability":"mutable","name":"callReply","nameLocation":"43353:9:161","nodeType":"VariableDeclaration","scope":78709,"src":"43345:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78694,"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":78696,"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":78695,"isOffset":false,"isSlot":false,"src":"43420:9:161","valueSize":1}],"flags":["memory-safe"],"id":78697,"nodeType":"InlineAssembly","src":"43377:88:161"},{"assignments":[78699],"declarations":[{"constant":false,"id":78699,"mutability":"mutable","name":"messageId","nameLocation":"43487:9:161","nodeType":"VariableDeclaration","scope":78709,"src":"43479:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43479:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78707,"initialValue":{"arguments":[{"expression":{"id":78701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"43512:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78702,"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":78705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78703,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78695,"src":"43522:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78704,"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":78700,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77917,"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":78706,"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":78699,"isOffset":false,"isSlot":false,"src":"43608:9:161","valueSize":1}],"flags":["memory-safe"],"id":78708,"nodeType":"InlineAssembly","src":"43552:115:161"}]}},"id":78715,"nodeType":"IfStatement","src":"42688:1048:161","trueBody":{"id":78684,"nodeType":"Block","src":"42731:112:161","statements":[{"assignments":[78673],"declarations":[{"constant":false,"id":78673,"mutability":"mutable","name":"value","nameLocation":"42753:5:161","nodeType":"VariableDeclaration","scope":78684,"src":"42745:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78672,"name":"uint128","nodeType":"ElementaryTypeName","src":"42745:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":78679,"initialValue":{"arguments":[{"expression":{"id":78676,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42769:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78677,"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":78675,"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":78674,"name":"uint128","nodeType":"ElementaryTypeName","src":"42761:7:161","typeDescriptions":{}}},"id":78678,"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":78681,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78673,"src":"42826:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78680,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"42799:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78682,"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":78683,"nodeType":"EmitStatement","src":"42794:38:161"}]}}]},"documentation":{"id":78657,"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":78660,"kind":"modifierInvocation","modifierName":{"id":78659,"name":"whenNotPaused","nameLocations":["42664:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77448,"src":"42664:13:161"},"nodeType":"ModifierInvocation","src":"42664:13:161"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78658,"nodeType":"ParameterList","parameters":[],"src":"42644:2:161"},"returnParameters":{"id":78661,"nodeType":"ParameterList","parameters":[],"src":"42678:0:161"},"scope":78718,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":77295,"name":"IMirror","nameLocations":["2640:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"2640:7:161"},"id":77296,"nodeType":"InheritanceSpecifier","src":"2640:7:161"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":77294,"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":[78718,74395],"name":"Mirror","nameLocation":"2630:6:161","scope":78719,"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":"_stateHash","type":"bytes32","internalType":"bytes32"},{"name":"_totalLeaves","type":"uint256","internalType":"uint256"},{"name":"_leafIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","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":"_proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"getValueClaimsMerkleRoot","inputs":[{"name":"_stateHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"isValueClaimProcessed","inputs":[{"name":"_messageId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"valueClaimsMerkleRoot","type":"bytes32","internalType":"bytes32"},{"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":"ValueClaimAlreadyProcessed","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ValueClaimInvalidMerkleProof","inputs":[]},{"type":"error","name":"ValueClaimMerkleRootNotFound","inputs":[{"name":"stateHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008d57601f611dfc38819003918201601f19168301916001600160401b038311848410176100915780849260209460405283398101031261008d57516001600160a01b038116810361008d57608052604051611d5690816100a682396080518181816102590152818161033d0152818161150601528181611590015281816115e7015261168b0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610181575b506100186114f1565b34151580610179575b1561005b577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016e575b1561015f5761007861165d565b6001541580159061014b575b1561013c576001600160801b03341661009c816115cf565b600154903060601b5f528160145260345f20915f198114610128576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610084565b6399dd405f60e01b5f5260045ffd5b50602436101561006b565b503615610021565b5f905f3560e01c90816304d12f831461129a575080630f2b47d41461126b57806336a52a181461123f57806340ea94fe1461107157806342129d0014610f755780634b885b9a1461073b5780635ce6c32714610718578063701da98e146106fb578063704ed542146106a55780637a8e0cdd1461060f57806391d5a64c146105b45780639ce110d71461058b578063affed0e01461056d578063bfa2857614610416578063c6049692146102f6578063e43f34331461028b5763f887ea400361000f57346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b50346102885780600319360112610288576102a46114f1565b60025460ff8116156102e7576102d090476001600160801b03169060081c6001600160a01b03166114ac565b156102d85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102885760a0366003190112610288576103106112ed565b6044359060ff8216809203610412576103276114f1565b61032f61165d565b826001600160a01b036103617f0000000000000000000000000000000000000000000000000000000000000000611752565b16803b1561040e57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103e4575b505f516020611d365f395f51905f52916103da602092611678565b604051908152a180f35b916103da84610404602094965f516020611d365f395f51905f52966113b2565b94925050916103bf565b5080fd5b8280fd5b5034610288576080366003190112610288576004356001600160a01b0381169081900361040e576024356001600160a01b038116908190036104125760443580151580910361056957606435926001600160801b0384168094036105655761047c61158e565b600354906001600160a01b0382166105565760ff8260a01c16610547577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610538576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc558061051d575080f35b60205f516020611d365f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102885780600319360112610288576020600154604051908152f35b50346102885780600319360112610288576003546040516001600160a01b039091168152602090f35b5034610288576020366003190112610288576105ce6114f1565b6105d661165d565b6105de611739565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610288576024356001600160401b03811161040e5761065c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9136906004016112c0565b6106679291926114f1565b61066f61165d565b610677611739565b6001600160801b0334169061068b826115cf565b61069f604051928392339660043585611384565b0390a280f35b5034610288576020366003190112610288575f516020611d365f395f51905f5260206106cf6112ed565b6106d76114f1565b6106df61165d565b6106e881611678565b6001600160801b0360405191168152a180f35b503461028857806003193601126102885760209054604051908152f35b5034610288578060031936011261028857602060ff600254166040519015158152f35b506020366003190112610d0d576001600160401b0360043511610d0d576004353603610100600319820112610d0d5761077261158e565b610780600435600401611319565b306001600160a01b0390911603610f665760a460043501906107a182611357565b610f4b575b60043560e401359060221901811215610d0d576001600160401b03600482813501013511610d0d57600481813501013560051b3603602482600435010113610d0d576004803582010135600581901b8190046020149015171561012857610816600482813501013560051b6117d2565b905f935f5b6004838135010135811015610d2557600581901b6004358401908101602401359036036101021901811215610d0d5760049084823501010190601f19823603019160e08312610d0d576040519760c089018981106001600160401b03821117610d1157604090815260208301358a52820135906001600160a01b0382168203610d0d5760208a0191825260608301356001600160401b038111610d0d5760209084010136601f82011215610d0d576108da903690602081359101611627565b9160408b019283526080840135956001600160801b0387168703610d0d5760409060608d01978852607f190112610d0d5760405195604087018781106001600160401b03821117610d115760405260a0850135875260c08501356001600160e01b031981168103610d0d578760808e60208301938452015260e086019c8d3580151596878203610d0d5760019a6020986109ef958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113b2565b51902088820152019760a0820135610a1457506020610a0e910161183e565b0161081b565b610a1d90611357565b15610c0a576001600160f81b0319610a3760c08301611829565b5f1a60f81b16156060905f14610b9457505f80610a64610a5d60608501602086016117f7565b3691611627565b610a7060408501611319565b6001600160801b03610a8460808701611343565b16602083519301916207a120f1610a9961147d565b5015610aa6575b50610a0e565b610ac7610ab560408301611319565b610ac160808401611343565b906114ac565b15610b31575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610afc60808401611343565b60a06001600160e01b0319610b1360c08701611829565b16946001600160801b0384519316835201356020820152a25f610aa0565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610b5e60408301611319565b610b6a60808401611343565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610acd565b5f8091610c05610baa60608601602087016117f7565b9290610be8610bbb60c08901611829565b91604051958694634a646c7f60e01b602087015260208b0135602487015260448601526084850191611364565b9063ffffffff60e01b16606483015203601f1981018352826113b2565b610a64565b610c19610ab560408301611319565b15610caa575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610c5060608301602084016117f7565b610c5c60808501611343565b60a06001600160e01b0319610c7360c08801611829565b16956001600160801b03610c94604051968796606088526060880191611364565b93166020850152013560408301520390a2610a0e565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610cd760408301611319565b610ce360808401611343565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c1f565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509350600490813501013560051b9020602460043501359060c46004350135825f5260046020528060405f205560446004350193610d6285611357565b15610f18576020955083610d7a606460043501611319565b610d8261165d565b600280546001600160a81b031916600883811b610100600160a81b031691909117600117918290555f9291476001600160801b031691610dcd9183911c6001600160a01b03166114ac565b15610ecb575b50505b81815403610e9a575b5050610df8610df2600435600401611319565b95611357565b90610e07606460043501611319565b610e1e610e18608460043501611343565b92611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a8152610e8f60ba826113b2565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093086604051868152a1835f610ddf565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a15f80610dd3565b6001600160a01b03610f2e600435606401611319565b16610f3c5783602096610dd6565b6304c3c7a160e41b5f5260045ffd5b610f61610f5c608460043501611343565b6115cf565b6107a6565b63ed488aa360e01b5f5260045ffd5b6040366003190112610d0d576004356001600160401b038111610d0d57610fa09036906004016112c0565b9060243590811515809203610d0d57610fb76114f1565b610fbf61165d565b6001541580159061105d575b1561013c576001600160801b03341690610fe4826115cf565b600154933060601b5f528460145260345f20935f198614610128576110447f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5493600160209801600155604051938785526080898601526080850191611364565b93604083015260608201528033930390a2604051908152f35b506003546001600160a01b03163314610fcb565b34610d0d5760e0366003190112610d0d576004356060366063190112610d0d5760c4356001600160401b038111610d0d5736602382011215610d0d5780600401356001600160401b038111610d0d573660248260051b84010111610d0d5760643591825f52600560205260ff60405f20541661122c57835f52600460205260405f205490811561121957611166939450611109611303565b61111161132d565b6040519060208201928884526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526111526064826113b2565b5190209260443592602480359301906113d3565b1561120a57805f52600560205260405f20600160ff1982541617905561119561118d611303565b610ac161132d565b156111e0577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783906111c461132d565b604080519283526001600160801b0391909116602083015290a1005b7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed906111c461132d565b63307ecc5760e01b5f5260045ffd5b8463c8c4695b60e01b5f5260045260245ffd5b826363d66af560e11b5f5260045260245ffd5b34610d0d575f366003190112610d0d5760025460405160089190911c6001600160a01b03168152602090f35b34610d0d576020366003190112610d0d576004355f526005602052602060ff60405f2054166040519015158152f35b34610d0d576020366003190112610d0d576020906004355f526004825260405f20548152f35b9181601f84011215610d0d578235916001600160401b038311610d0d5760208381860195010111610d0d57565b600435906001600160801b0382168203610d0d57565b6084356001600160a01b0381168103610d0d5790565b356001600160a01b0381168103610d0d5790565b60a4356001600160801b0381168103610d0d5790565b356001600160801b0381168103610d0d5790565b358015158103610d0d5790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113ab916001600160801b03939796978652606060208701526060860191611364565b9416910152565b90601f801991011681019081106001600160401b03821117610d1157604052565b91949590929384811015611457575f969092905b8688101561144d57808860051b860135906001808716148015611441575b1561142c57505f5260205260018060405f20945b811c965f1901811c0197019694926113e7565b9091505f5260205260018060405f2094611419565b50876001870114611405565b1495509350505050565b509450505050505f90565b6001600160401b038111610d1157601f01601f191660200190565b3d156114a7573d9061148e82611462565b9161149c60405193846113b2565b82523d5f602084013e565b606090565b906001600160801b031690816114c3575050600190565b5f8080938193611388f16114d561147d565b5090565b90816020910312610d0d57518015158103610d0d5790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611583575f91611554575b5061154557565b63d93c066560e01b5f5260045ffd5b611576915060203d60201161157c575b61156e81836113b2565b8101906114d9565b5f61153e565b503d611564565b6040513d5f823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036115c057565b6375f48d7160e11b5f5260045ffd5b6001600160801b0316806115e05750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af161161061147d565b501561161857565b6308eb200360e41b5f5260045ffd5b92919261163382611462565b9161164160405193846113b2565b829481845281830111610d0d578281602093845f960137010152565b60ff6002541661166957565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806116895750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b036116c185611752565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af1908115611583575f9161171a575b501561170b57565b6303a25d1960e31b5f5260045ffd5b611733915060203d60201161157c5761156e81836113b2565b5f611703565b6001541561174357565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115611583575f91611790575b506001600160a01b031690565b90506020813d6020116117ca575b816117ab602093836113b2565b81010312610d0d57516001600160a01b0381168103610d0d575f611783565b3d915061179e565b6040519190601f01601f191682016001600160401b03811183821017610d0d57604052565b903590601e1981360301821215610d0d57018035906001600160401b038211610d0d57602001918136038313610d0d57565b356001600160e01b031981168103610d0d5790565b61184781611974565b1561184f5750565b61185b60c08201611357565b6118c8575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736118c361189060208401611319565b61189d60408501856117f7565b6118ac60608795939501611343565b9060405194859460018060a01b0316973585611384565b0390a2565b602081015f806118d783611319565b816118e560408701876117f7565b9190826040519384928337810182815203926207a120f161190461147d565b50156119105750611860565b61193a7f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611319565b61194660608401611343565b60408051943585526001600160801b0390911660208501526001600160a01b039091169290819081016118c3565b61198160408201826117f7565b90916001600160a01b038061199860208401611319565b16149081611d17575b5080611d0e575b15611d085781358060f81c90600182101580611cfd575b15611cf55760f31c611fe016600181018310611cf5576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611ccb575b80611ca1575b80611c77575b80611c4d575b80611c36575b80611c0c575b80611be2575b80611bb8575b80611b8e575b80611b64575b80611b3a575b80611b10575b80611ae6575b15611add578190035f190191826001611a65826117d2565b93870101833760218501359460418101359160018103611a8c5750505090919250a1600190565b60028103611a9d57505050a2600190565b600381979593969497145f14611ab957505090919293a3600190565b600414611acc575b505050505050600190565b6061013594a45f8080808080611ac1565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611a4d565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611a47565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f3841415611a41565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611a3b565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611a35565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6841415611a2f565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611a29565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f8011773841415611a23565b505f516020611d365f395f51905f52841415611a1d565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611a17565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611a11565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611a0b565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611a05565b505050505f90565b5060048211156119bf565b50505f90565b508015156119a8565b6001600160801b0391506060611d2d9101611343565b16155f6119a156fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2690:42671:161:-:0;;;;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;7862:16;;2690:42671;;;;;;;;7862:16;2690:42671;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2690:42671:161;;;;;;-1:-1:-1;2690:42671:161;;;;;-1:-1:-1;2690:42671:161","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610181575b506100186114f1565b34151580610179575b1561005b577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016e575b1561015f5761007861165d565b6001541580159061014b575b1561013c576001600160801b03341661009c816115cf565b600154903060601b5f528160145260345f20915f198114610128576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610084565b6399dd405f60e01b5f5260045ffd5b50602436101561006b565b503615610021565b5f905f3560e01c90816304d12f831461129a575080630f2b47d41461126b57806336a52a181461123f57806340ea94fe1461107157806342129d0014610f755780634b885b9a1461073b5780635ce6c32714610718578063701da98e146106fb578063704ed542146106a55780637a8e0cdd1461060f57806391d5a64c146105b45780639ce110d71461058b578063affed0e01461056d578063bfa2857614610416578063c6049692146102f6578063e43f34331461028b5763f887ea400361000f57346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b50346102885780600319360112610288576102a46114f1565b60025460ff8116156102e7576102d090476001600160801b03169060081c6001600160a01b03166114ac565b156102d85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102885760a0366003190112610288576103106112ed565b6044359060ff8216809203610412576103276114f1565b61032f61165d565b826001600160a01b036103617f0000000000000000000000000000000000000000000000000000000000000000611752565b16803b1561040e57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103e4575b505f516020611d365f395f51905f52916103da602092611678565b604051908152a180f35b916103da84610404602094965f516020611d365f395f51905f52966113b2565b94925050916103bf565b5080fd5b8280fd5b5034610288576080366003190112610288576004356001600160a01b0381169081900361040e576024356001600160a01b038116908190036104125760443580151580910361056957606435926001600160801b0384168094036105655761047c61158e565b600354906001600160a01b0382166105565760ff8260a01c16610547577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610538576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc558061051d575080f35b60205f516020611d365f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102885780600319360112610288576020600154604051908152f35b50346102885780600319360112610288576003546040516001600160a01b039091168152602090f35b5034610288576020366003190112610288576105ce6114f1565b6105d661165d565b6105de611739565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610288576024356001600160401b03811161040e5761065c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9136906004016112c0565b6106679291926114f1565b61066f61165d565b610677611739565b6001600160801b0334169061068b826115cf565b61069f604051928392339660043585611384565b0390a280f35b5034610288576020366003190112610288575f516020611d365f395f51905f5260206106cf6112ed565b6106d76114f1565b6106df61165d565b6106e881611678565b6001600160801b0360405191168152a180f35b503461028857806003193601126102885760209054604051908152f35b5034610288578060031936011261028857602060ff600254166040519015158152f35b506020366003190112610d0d576001600160401b0360043511610d0d576004353603610100600319820112610d0d5761077261158e565b610780600435600401611319565b306001600160a01b0390911603610f665760a460043501906107a182611357565b610f4b575b60043560e401359060221901811215610d0d576001600160401b03600482813501013511610d0d57600481813501013560051b3603602482600435010113610d0d576004803582010135600581901b8190046020149015171561012857610816600482813501013560051b6117d2565b905f935f5b6004838135010135811015610d2557600581901b6004358401908101602401359036036101021901811215610d0d5760049084823501010190601f19823603019160e08312610d0d576040519760c089018981106001600160401b03821117610d1157604090815260208301358a52820135906001600160a01b0382168203610d0d5760208a0191825260608301356001600160401b038111610d0d5760209084010136601f82011215610d0d576108da903690602081359101611627565b9160408b019283526080840135956001600160801b0387168703610d0d5760409060608d01978852607f190112610d0d5760405195604087018781106001600160401b03821117610d115760405260a0850135875260c08501356001600160e01b031981168103610d0d578760808e60208301938452015260e086019c8d3580151596878203610d0d5760019a6020986109ef958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113b2565b51902088820152019760a0820135610a1457506020610a0e910161183e565b0161081b565b610a1d90611357565b15610c0a576001600160f81b0319610a3760c08301611829565b5f1a60f81b16156060905f14610b9457505f80610a64610a5d60608501602086016117f7565b3691611627565b610a7060408501611319565b6001600160801b03610a8460808701611343565b16602083519301916207a120f1610a9961147d565b5015610aa6575b50610a0e565b610ac7610ab560408301611319565b610ac160808401611343565b906114ac565b15610b31575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610afc60808401611343565b60a06001600160e01b0319610b1360c08701611829565b16946001600160801b0384519316835201356020820152a25f610aa0565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610b5e60408301611319565b610b6a60808401611343565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610acd565b5f8091610c05610baa60608601602087016117f7565b9290610be8610bbb60c08901611829565b91604051958694634a646c7f60e01b602087015260208b0135602487015260448601526084850191611364565b9063ffffffff60e01b16606483015203601f1981018352826113b2565b610a64565b610c19610ab560408301611319565b15610caa575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610c5060608301602084016117f7565b610c5c60808501611343565b60a06001600160e01b0319610c7360c08801611829565b16956001600160801b03610c94604051968796606088526060880191611364565b93166020850152013560408301520390a2610a0e565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610cd760408301611319565b610ce360808401611343565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c1f565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509350600490813501013560051b9020602460043501359060c46004350135825f5260046020528060405f205560446004350193610d6285611357565b15610f18576020955083610d7a606460043501611319565b610d8261165d565b600280546001600160a81b031916600883811b610100600160a81b031691909117600117918290555f9291476001600160801b031691610dcd9183911c6001600160a01b03166114ac565b15610ecb575b50505b81815403610e9a575b5050610df8610df2600435600401611319565b95611357565b90610e07606460043501611319565b610e1e610e18608460043501611343565b92611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a8152610e8f60ba826113b2565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093086604051868152a1835f610ddf565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a15f80610dd3565b6001600160a01b03610f2e600435606401611319565b16610f3c5783602096610dd6565b6304c3c7a160e41b5f5260045ffd5b610f61610f5c608460043501611343565b6115cf565b6107a6565b63ed488aa360e01b5f5260045ffd5b6040366003190112610d0d576004356001600160401b038111610d0d57610fa09036906004016112c0565b9060243590811515809203610d0d57610fb76114f1565b610fbf61165d565b6001541580159061105d575b1561013c576001600160801b03341690610fe4826115cf565b600154933060601b5f528460145260345f20935f198614610128576110447f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5493600160209801600155604051938785526080898601526080850191611364565b93604083015260608201528033930390a2604051908152f35b506003546001600160a01b03163314610fcb565b34610d0d5760e0366003190112610d0d576004356060366063190112610d0d5760c4356001600160401b038111610d0d5736602382011215610d0d5780600401356001600160401b038111610d0d573660248260051b84010111610d0d5760643591825f52600560205260ff60405f20541661122c57835f52600460205260405f205490811561121957611166939450611109611303565b61111161132d565b6040519060208201928884526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526111526064826113b2565b5190209260443592602480359301906113d3565b1561120a57805f52600560205260405f20600160ff1982541617905561119561118d611303565b610ac161132d565b156111e0577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783906111c461132d565b604080519283526001600160801b0391909116602083015290a1005b7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed906111c461132d565b63307ecc5760e01b5f5260045ffd5b8463c8c4695b60e01b5f5260045260245ffd5b826363d66af560e11b5f5260045260245ffd5b34610d0d575f366003190112610d0d5760025460405160089190911c6001600160a01b03168152602090f35b34610d0d576020366003190112610d0d576004355f526005602052602060ff60405f2054166040519015158152f35b34610d0d576020366003190112610d0d576020906004355f526004825260405f20548152f35b9181601f84011215610d0d578235916001600160401b038311610d0d5760208381860195010111610d0d57565b600435906001600160801b0382168203610d0d57565b6084356001600160a01b0381168103610d0d5790565b356001600160a01b0381168103610d0d5790565b60a4356001600160801b0381168103610d0d5790565b356001600160801b0381168103610d0d5790565b358015158103610d0d5790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113ab916001600160801b03939796978652606060208701526060860191611364565b9416910152565b90601f801991011681019081106001600160401b03821117610d1157604052565b91949590929384811015611457575f969092905b8688101561144d57808860051b860135906001808716148015611441575b1561142c57505f5260205260018060405f20945b811c965f1901811c0197019694926113e7565b9091505f5260205260018060405f2094611419565b50876001870114611405565b1495509350505050565b509450505050505f90565b6001600160401b038111610d1157601f01601f191660200190565b3d156114a7573d9061148e82611462565b9161149c60405193846113b2565b82523d5f602084013e565b606090565b906001600160801b031690816114c3575050600190565b5f8080938193611388f16114d561147d565b5090565b90816020910312610d0d57518015158103610d0d5790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611583575f91611554575b5061154557565b63d93c066560e01b5f5260045ffd5b611576915060203d60201161157c575b61156e81836113b2565b8101906114d9565b5f61153e565b503d611564565b6040513d5f823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036115c057565b6375f48d7160e11b5f5260045ffd5b6001600160801b0316806115e05750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af161161061147d565b501561161857565b6308eb200360e41b5f5260045ffd5b92919261163382611462565b9161164160405193846113b2565b829481845281830111610d0d578281602093845f960137010152565b60ff6002541661166957565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806116895750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b036116c185611752565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af1908115611583575f9161171a575b501561170b57565b6303a25d1960e31b5f5260045ffd5b611733915060203d60201161157c5761156e81836113b2565b5f611703565b6001541561174357565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115611583575f91611790575b506001600160a01b031690565b90506020813d6020116117ca575b816117ab602093836113b2565b81010312610d0d57516001600160a01b0381168103610d0d575f611783565b3d915061179e565b6040519190601f01601f191682016001600160401b03811183821017610d0d57604052565b903590601e1981360301821215610d0d57018035906001600160401b038211610d0d57602001918136038313610d0d57565b356001600160e01b031981168103610d0d5790565b61184781611974565b1561184f5750565b61185b60c08201611357565b6118c8575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736118c361189060208401611319565b61189d60408501856117f7565b6118ac60608795939501611343565b9060405194859460018060a01b0316973585611384565b0390a2565b602081015f806118d783611319565b816118e560408701876117f7565b9190826040519384928337810182815203926207a120f161190461147d565b50156119105750611860565b61193a7f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611319565b61194660608401611343565b60408051943585526001600160801b0390911660208501526001600160a01b039091169290819081016118c3565b61198160408201826117f7565b90916001600160a01b038061199860208401611319565b16149081611d17575b5080611d0e575b15611d085781358060f81c90600182101580611cfd575b15611cf55760f31c611fe016600181018310611cf5576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611ccb575b80611ca1575b80611c77575b80611c4d575b80611c36575b80611c0c575b80611be2575b80611bb8575b80611b8e575b80611b64575b80611b3a575b80611b10575b80611ae6575b15611add578190035f190191826001611a65826117d2565b93870101833760218501359460418101359160018103611a8c5750505090919250a1600190565b60028103611a9d57505050a2600190565b600381979593969497145f14611ab957505090919293a3600190565b600414611acc575b505050505050600190565b6061013594a45f8080808080611ac1565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611a4d565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611a47565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f3841415611a41565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611a3b565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611a35565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6841415611a2f565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611a29565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f8011773841415611a23565b505f516020611d365f395f51905f52841415611a1d565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611a17565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611a11565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611a0b565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611a05565b505050505f90565b5060048211156119bf565b50505f90565b508015156119a8565b6001600160801b0391506060611d2d9101611343565b16155f6119a156fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2690:42671:161:-:0;;;;;;;;;;-1:-1:-1;10120:69:161;;;:::i;:::-;44309:9;:13;;:37;;;-1:-1:-1;44305:1048:161;;;44416:33;2690:42671;;;-1:-1:-1;;;;;44309:9:161;2690:42671;;;44416:33;2690:42671;44305:1048;2690:42671;44471:7;2690:42671;;;;44470:8;:35;;;44305:1048;44466:887;;;9036:67;;:::i;:::-;8831:5;2690:42671;8831:9;;;:38;;;44466:887;2690:42671;;;-1:-1:-1;;;;;44309:9:161;2690:42671;22056:6;;;:::i;:::-;8831:5;2690:42671;22277:154;;;;44321:1;22277:154;;;;;44321:1;22277:154;2690:42671;;;;;;;8831:5;2690:42671;8831:5;2690:42671;22463:70;2690:42671;;;;;;;;;;;;;;;;;;44321:1;2690:42671;;;;44321:1;2690:42671;;;;;;;;;;;;;;;;;;;;44994:88;45139:14;;22277:154;2690:42671;;;22492:10;;22463:70;;;;44321:1;45169:115;2690:42671;44321:1;45169:115;2690:42671;;;;44321:1;2690:42671;;;;;44321:1;2690:42671;;;;;44321:1;2690:42671;;44321:1;2690:42671;8831:38;-1:-1:-1;44471:7:161;2690:42671;-1:-1:-1;;;;;2690:42671:161;8844:10;:25;8831:38;;44466:887;45321:21;;;44321:1;45321:21;2690:42671;44321:1;45321:21;44470:35;2690:42671;44501:4;2690:42671;44482:23;;44470:35;;44309:37;2690:42671;;44326:20;44309:37;;2690:42671;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3297:31;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;10120:69;;:::i;:::-;9601:6;2690:42671;;;;;;;23314:37;;23066:21;-1:-1:-1;;;;;2690:42671:161;;;;-1:-1:-1;;;;;2690:42671:161;23314:37;:::i;:::-;2690:42671;;;;;;-1:-1:-1;;;2690:42671:161;;;;;;-1:-1:-1;;;2690:42671:161;;;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;;;:::i;:::-;;;;;;;;;;;;10120:69;;:::i;:::-;9036:67;;:::i;:::-;2690:42671;-1:-1:-1;;;;;15451:14:161;15458:6;15451:14;:::i;:::-;2690:42671;15451:79;;;;;2690:42671;;15451:79;2690:42671;;;;;;;;;15451:79;;15473:10;2690:42671;15451:79;;2690:42671;15493:4;2690:42671;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15451:79;;;;2690:42671;15567:6;-1:-1:-1;;;;;;;;;;;15567:6:161;;2690:42671;15567:6;;:::i;:::-;2690:42671;;;;;15590:39;2690:42671;;15451:79;;15567:6;15451:79;;2690:42671;15451:79;;-1:-1:-1;;;;;;;;;;;15451:79:161;;:::i;:::-;;;;;;;;;2690:42671;;;;;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;9741:63;;:::i;:::-;18771:11;2690:42671;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;811:66:53;2690:42671:161;;-1:-1:-1;;;;;2690:42671:161;;811:66:53;;-1:-1:-1;;;;;;811:66:53;;;;;;;;;-1:-1:-1;;;811:66:53;;18771:11:161;811:66:53;-1:-1:-1;;;;;;811:66:53;;;;19221:30:161;19217:124;;2690:42671;;;19217:124;2690:42671;-1:-1:-1;;;;;;;;;;;2690:42671:161;;;;;;19272:58;2690:42671;;811:66:53;-1:-1:-1;;;811:66:53;;2690:42671:161;811:66:53;;2690:42671:161;-1:-1:-1;;;2690:42671:161;;;;;;-1:-1:-1;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;;3627:20;2690:42671;;;;;;;;;;;;;;;;;;;;4119:26;2690:42671;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;10120:69;;:::i;:::-;9036:67;;:::i;:::-;8042:83;;:::i;:::-;2690:42671;;;;;;14033:46;2690:42671;14068:10;14033:46;;2690:42671;;;-1:-1:-1;2690:42671:161;;-1:-1:-1;;2690:42671:161;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;13560:64;2690:42671;;;;;;:::i;:::-;10120:69;;;;;:::i;:::-;9036:67;;:::i;:::-;8042:83;;:::i;:::-;-1:-1:-1;;;;;13499:9:161;2690:42671;13537:6;;;;:::i;:::-;13560:64;2690:42671;;13595:10;;;;2690:42671;;;13560:64;;:::i;:::-;;;;2690:42671;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;-1:-1:-1;;;;;;;;;;;2690:42671:161;;;:::i;:::-;10120:69;;:::i;:::-;9036:67;;:::i;:::-;10592:5;;;:::i;:::-;-1:-1:-1;;;;;2690:42671:161;;;;;;14509:39;2690:42671;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3737:18;2690:42671;;;;;;;;;;;-1:-1:-1;2690:42671:161;;-1:-1:-1;;2690:42671:161;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;;9741:63;;:::i;:::-;19844:19;2690:42671;;;;19844:19;:::i;:::-;19875:4;-1:-1:-1;;;;;2690:42671:161;;;19844:36;2690:42671;;20032:38;2690:42671;;20032:38;;;;;:::i;:::-;20028:113;;2690:42671;;;20262:20;;2690:42671;;-1:-1:-1;;2690:42671:161;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24155:35;2690:42671;;;;;;;;;24155:35;:::i;:::-;24200:18;2690:42671;24234:13;2690:42671;24266:3;2690:42671;;;;;;;24249:15;;;;;2690:42671;;;;;;;;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;20032:38;2690:42671;;;;;;;;;-1:-1:-1;;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20184:273:170;2690:42671:161;;;;20032:38;2690:42671;;;;;;;20283:15:170;;2690:42671:161;;;;;;;;;;;;;;;20184:273:170;;;;;;2690:42671:161;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;20184:273:170;;;;;;;;;;:::i;:::-;2690:42671:161;20161:306:170;;4093:83:22;;;;2690:42671:161;;20032:38;2690:42671;;;20032:38;;2690:42671;;24958:7;2690:42671;;24958:7;:::i;:::-;2690:42671;24234:13;;24884:162;39766:13;;;:::i;:::-;;;;-1:-1:-1;;;;;;39817:26:161;2690:42671;;;39817:26;:::i;:::-;2690:42671;39817:29;2690:42671;;;39817:34;2690:42671;39901:433;;;;;2690:42671;;;;39949:16;2690:42671;;;;;;39949:16;:::i;:::-;2690:42671;;;:::i;:::-;40366:20;2690:42671;;;40366:20;:::i;:::-;-1:-1:-1;;;;;40413:14:161;2690:42671;;;40413:14;:::i;:::-;2690:42671;;40366:71;;;;;40397:7;40366:71;;;:::i;:::-;;40456:8;40452:513;;39901:433;39762:1562;24884:162;;40452:513;40507:52;40522:20;2690:42671;;;40522:20;:::i;:::-;40544:14;2690:42671;;;40544:14;:::i;:::-;40507:52;;:::i;:::-;40581:16;40577:125;;40452:513;40865:85;2690:42671;40881:14;2690:42671;;;40881:14;:::i;:::-;20032:38;-1:-1:-1;;;;;;40923:26:161;2690:42671;;;40923:26;:::i;:::-;2690:42671;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;40865:85;40452:513;;;40577:125;40626:57;40646:20;2690:42671;;;40646:20;:::i;:::-;40668:14;2690:42671;;;40668:14;:::i;:::-;2690:42671;;;-1:-1:-1;;;;;2690:42671:161;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;40626:57;40577:125;;39901:433;2690:42671;;;40166:153;40257:16;2690:42671;;;;;;40257:16;:::i;:::-;2690:42671;;;40275:26;2690:42671;;;40275:26;:::i;:::-;2690:42671;;;40210:32;;;;;;2690:42671;40166:153;;;2690:42671;;;;40166:153;;;2690:42671;;;;;;;;;;:::i;:::-;;;;;;;;;;40166:153;2690:42671;;40166:153;;;;;;:::i;:::-;39901:433;;39762:1562;41018:52;41033:20;2690:42671;;;41033:20;:::i;41018:52::-;41088:16;41084:117;;39762:1562;41220:93;41226:16;2690:42671;;;;;;41226:16;:::i;:::-;41244:14;2690:42671;;;41244:14;:::i;:::-;20032:38;-1:-1:-1;;;;;;41286:26:161;2690:42671;;;41286:26;:::i;:::-;2690:42671;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;41220:93;;;24884:162;;41084:117;41129:57;41149:20;2690:42671;;;41149:20;:::i;:::-;41171:14;2690:42671;;;41171:14;:::i;:::-;2690:42671;;;-1:-1:-1;;;;;2690:42671:161;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;41129:57;41084:117;;2690:42671;;;;;;;;;;;;;;;;24249:15;;;;2690:42671;24249:15;2690:42671;;;;;;;1083:131:25;;20404:24:161;2690:42671;;20404:24;2690:42671;;20430:33;2690:42671;;20430:33;2690:42671;;;;;;;;;;;;20544:18;2690:42671;;20544:18;;;;;:::i;:::-;;;;2690:42671;;;;20592:21;;2690:42671;;20592:21;;:::i;:::-;9036:67;;:::i;:::-;42260:13;2690:42671;;-1:-1:-1;;;;;;2690:42671:161;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;-1:-1:-1;;2690:42671:161;23066:21;-1:-1:-1;;;;;2690:42671:161;;23314:37;;2690:42671;;;-1:-1:-1;;;;;2690:42671:161;23314:37;:::i;:::-;42484:8;42480:231;;20540:183;;;;2690:42671;;;20811:37;20807:110;;20540:183;2690:42671;;21126:18;21055:19;2690:42671;;;;21055:19;:::i;:::-;21126:18;;:::i;:::-;2690:42671;21158:21;;2690:42671;;21158:21;;:::i;:::-;21233:38;21193:26;;2690:42671;;21193:26;;:::i;:::-;21233:38;;:::i;:::-;2690:42671;;;21734:279:170;;;;2690:42671:161;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;21734:279:170;;;;;;:::i;:::-;2690:42671:161;21711:312:170;;2690:42671:161;;;;;;20807:110;2690:42671;43071:23;2690:42671;;;;;;43071:23;20807:110;;;;42480:231;2690:42671;;;-1:-1:-1;;;;;2690:42671:161;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;42645:55;;;42480:231;;;;20540:183;-1:-1:-1;;;;;20653:21:161;2690:42671;;20653:21;;;:::i;:::-;2690:42671;;;20540:183;2690:42671;20540:183;;;2690:42671;;;;;;;;;20028:113;20103:26;;;2690:42671;;20103:26;;:::i;:::-;;:::i;:::-;20028:113;;2690:42671;;;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10120:69;;:::i;:::-;9036:67;;:::i;:::-;8831:5;2690:42671;8831:9;;;:38;;;2690:42671;;;;-1:-1:-1;;;;;22018:9:161;2690:42671;22056:6;;;;:::i;:::-;8831:5;2690:42671;22277:154;;;;2690:42671;22277:154;;;;;2690:42671;22277:154;2690:42671;;;;;;;;22463:70;2690:42671;8831:5;2690:42671;;;8831:5;2690:42671;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;22277:154;2690:42671;;;22492:10;;22463:70;;;;2690:42671;;;;;;8831:38;-1:-1:-1;8858:11:161;2690:42671;-1:-1:-1;;;;;2690:42671:161;8844:10;:25;8831:38;;2690:42671;;;;;;-1:-1:-1;;2690:42671:161;;;;;;;;-1:-1:-1;;2690:42671:161;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16935:24;;;2690:42671;;17135:93;17071:18;;;;;:::i;:::-;17091:12;;:::i;:::-;2690:42671;;20822:50:170;2690:42671:161;20822:50:170;;2690:42671:161;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;20822:50:170;;;2690:42671:161;20822:50:170;;:::i;:::-;2690:42671:161;20812:61:170;;2690:42671:161;;;;;;;;;17135:93;;:::i;:::-;2690:42671;;;;;;;;;;;;;;;;;;;;;17365:48;17380:18;;:::i;:::-;17400:12;;:::i;17365:48::-;17400:12;;;17455:44;17486:12;;;:::i;:::-;2690:42671;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;17455:44;2690:42671;17423:171;17535:48;17570:12;;;:::i;2690:42671::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;4009:24;2690:42671;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;;;;;12109:21;2690:42671;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2690:42671:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;:::o;:::-;17071:18;2690:42671;-1:-1:-1;;;;;2690:42671:161;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2690:42671:161;;;;;;;:::o;:::-;17091:12;2690:42671;-1:-1:-1;;;;;2690:42671:161;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2690:42671:161;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;2690:42671:161;;;;;;;;-1:-1:-1;;2690:42671:161;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;:::o;1324:381:167:-;;;;;;;1543:27;;;;1539:70;;2690:42671:161;;2296:28:167;;;2450:3;2432:16;;;;;;2469:20;2690:42671:161;;;;;;;2632:1:167;2690:42671:161;;;2789:17:167;:45;;;;2450:3;2785:207;;;889:135:78;2690:42671:161;889:135:78;;;2632:1:167;889:135:78;;2690:42671:161;889:135:78;2785:207:167;;2690:42671:161;;;;;;;;;2450:3:167;2690:42671:161;2417:13:167;;;;;2785:207;889:135:78;;;2690:42671:161;889:135:78;;;2632:1:167;889:135:78;;2690:42671:161;889:135:78;2785:207:167;;;2789:45;2690:42671:161;;2632:1:167;2690:42671:161;;2810:24:167;2789:45;;2432:16;1626:72;;-1:-1:-1;2432:16:167;-1:-1:-1;;;;1324:381:167:o;1539:70::-;1586:12;;;;;;;2690:42671:161;1586:12:167;:::o;2690:42671:161:-;-1:-1:-1;;;;;2690:42671:161;;;;;;-1:-1:-1;;2690:42671:161;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2690:42671:161;;;;:::o;:::-;;;:::o;43699:253::-;;-1:-1:-1;;;;;2690:42671:161;43796:10;;43792:133;;43934:11;;43941:4;43699:253;:::o;43792:133::-;2690:42671;43840:46;;;;;43862:5;43840:46;;;:::i;:::-;;43900:14;:::o;2690:42671::-;;;;;;;;;;;;;;;;;;:::o;10281:108::-;2690:42671;;-1:-1:-1;;;10340:24:161;;;2690:42671;10340:24;2690:42671;10348:6;-1:-1:-1;;;;;2690:42671:161;10340:24;;;;;;;-1:-1:-1;10340:24:161;;;10281:108;10339:25;2690:42671;;10281:108::o;2690:42671::-;;;;-1:-1:-1;2690:42671:161;10340:24;-1:-1:-1;2690:42671:161;10340:24;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2690:42671;;;;;;;;;9896:102;9965:6;-1:-1:-1;;;;;2690:42671:161;9951:10;:20;2690:42671;;9896:102::o;2690:42671::-;;;;;;;;;11092:215;-1:-1:-1;;;;;2690:42671:161;11156:10;11152:149;;11092:215;:::o;11152:149::-;11165:1;11200:6;;;;;:29;;;;:::i;:::-;;2690:42671;;;11092:215::o;2690:42671::-;;;;11165:1;2690:42671;;11165:1;2690:42671;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2690:42671:161;;;;;;:::o;9190:89::-;2690:42671;9248:6;2690:42671;;;;9190:89::o;2690:42671::-;;;;-1:-1:-1;2690:42671:161;;-1:-1:-1;2690:42671:161;10725:228;-1:-1:-1;;;;;2690:42671:161;10788:10;10784:163;;10725:228;:::o;10784:163::-;10836:6;;2690:42671;;10829:54;-1:-1:-1;;;;;10829:14:161;10836:6;10829:14;:::i;:::-;2690:42671;;-1:-1:-1;;;10829:54:161;;10857:10;10829:54;;;2690:42671;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;;;;;10797:1;;2690:42671;10829:54;;;;;;;10797:1;10829:54;;;10784:163;2690:42671;;;;10725:228::o;2690:42671::-;;;;10797:1;2690:42671;10829:54;10797:1;2690:42671;10829:54;;;;2690:42671;10829:54;2690:42671;10829:54;;;;;;;:::i;:::-;;;;8231:107;8296:5;2690:42671;8296:9;2690:42671;;8231:107::o;2690:42671::-;;;;-1:-1:-1;2690:42671:161;;-1:-1:-1;2690:42671:161;43275:182;2690:42671;;-1:-1:-1;;;43377:33:161;;2690:42671;43377:33;;2690:42671;;43377:33;;2690:42671;;-1:-1:-1;;;;;2690:42671:161;43377:33;;;;;;;-1:-1:-1;43377:33:161;;;43275:182;-1:-1:-1;;;;;;2690:42671:161;;43275:182::o;43377:33::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2690:42671;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;43377:33;;;;;;-1:-1:-1;43377: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;2690:42671:161:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;2690:42671:161;;;;;;;:::o;25669:1125::-;25927:36;;;:::i;:::-;25926:37;25922:866;;25669:1125;:::o;25922:866::-;26233:13;;;;;:::i;:::-;26229:453;;25922:866;26701:76;;26722:20;;;;;:::i;:::-;26744:16;;;;;;:::i;:::-;26762:14;;;;;;;;:::i;:::-;2690:42671;26744:16;2690:42671;;;;;;;;;;;;26701:76;;:::i;:::-;;;;25669:1125::o;26229:453::-;26284:20;;;-1:-1:-1;26284:20:161;;;;:::i;:::-;26324:16;;;;;;;:::i;:::-;2690:42671;;;26324:16;2690:42671;;;;;;;;;;;26284:57;;26315:7;26284:57;;;:::i;:::-;;26364:8;26360:308;;26229:453;;;26360:308;26584:20;26553:68;26584:20;;:::i;:::-;26606:14;;;;;:::i;:::-;26324:16;2690:42671;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;-1:-1:-1;;;;;2690:42671:161;;;;;;;;;26553:68;2690:42671;29873:3845;30012:16;;;;;;:::i;:::-;2690:42671;;-1:-1:-1;;;;;2690:42671:161;30045:20;;;;;:::i;:::-;2690:42671;30045:38;:61;;;;29873:3845;30045:83;;;;29873:3845;30043:86;30039:129;;30208:249;;;;;30473:17;30489:1;30473:17;;;:38;;;29873:3845;30471:41;30467:84;;3012:42;;;;30489:1;2690:42671;;30692:37;;30686:83;;30489:1;30888:95;;;31554:31;31564:21;31554:31;;;:90;;;29873:3845;31554:147;;;29873:3845;31554:204;;;29873:3845;31554:265;;;29873:3845;31554:331;;;29873:3845;31554:373;;;29873:3845;31554:425;;;29873:3845;31554:465;;;29873:3845;31554:515;;;29873:3845;31554:562;;;29873:3845;31554:633;;;29873:3845;31554:687;;;29873:3845;31554:738;;;29873:3845;31539:763;31535:806;;2690:42671;;;-1:-1:-1;;2690:42671:161;;;30489:1;32511:21;2690:42671;32511:21;:::i;:::-;32542:117;;;;;;32878:216;;;;;;;;;;30489:1;33108:17;;30489:1;;33141:83;;;;;;;;30489:1;29873:3845;:::o;33104:586::-;33260:1;33244:17;;33260:1;;33277:91;;;;30489:1;29873:3845;:::o;33240:450::-;33404:1;33388:17;;;;;;;;33384:306;33404:1;;;33421:99;;;;;;;30489:1;29873:3845;:::o;33384:306::-;33556:1;33540:17;33536:154;;33384:306;;;;;;;30489:1;29873:3845;:::o;33536:154::-;32878:216;;;33573:107;;33536:154;;;;;;;;31535:806;32318:12;;;;;2690:42671;32318:12;:::o;31554:738::-;32257:35;32267:25;32257:35;;;31554:738;;:687;32203:38;32213:28;32203:38;;;31554:687;;:633;32132:55;32142:45;32132:55;;;31554:633;;:562;32085:31;32095:21;32085:31;;;31554:562;;:515;32035:34;32045:24;32035:34;;;31554:515;;:465;31995:24;32005:14;31995:24;;;31554:465;;:425;31943:36;31953:26;31943:36;;;31554:425;;:373;31901:26;31911:16;31901:26;;;31554:373;;:331;31835:50;-1:-1:-1;;;;;;;;;;;31835:50:161;;;31554:331;;:265;31774:45;31784:35;31774:45;;;31554:265;;:204;31717:41;31727:31;31717:41;;;31554:204;;:147;31660:41;31670:31;31660:41;;;31554:147;;:90;31601:43;31611:33;31601:43;;;31554:90;;30686:83;30746:12;;;;2690:42671;30746:12;:::o;30473:38::-;30494:17;30510:1;30494:17;;;30473:38;;30039:129;30145:12;;2690:42671;30145:12;:::o;30045:83::-;30110:18;;;;30045:83;;:61;-1:-1:-1;;;;;30087:14:161;;;;;;;:::i;:::-;2690:42671;30087:19;30045:61;;","linkReferences":{},"immutableReferences":{"77350":[{"start":601,"length":32},{"start":829,"length":32},{"start":5382,"length":32},{"start":5520,"length":32},{"start":5607,"length":32},{"start":5771,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","claimValue(bytes32,uint256,uint256,(bytes32,address,uint128),bytes32[])":"40ea94fe","executableBalanceTopUp(uint128)":"704ed542","executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":"c6049692","exited()":"5ce6c327","getValueClaimsMerkleRoot(bytes32)":"04d12f83","inheritor()":"36a52a18","initialize(address,address,bool,uint128)":"bfa28576","initializer()":"9ce110d7","isValueClaimProcessed(bytes32)":"0f2b47d4","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,bytes32,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":"4b885b9a","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\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"ValueClaimAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValueClaimInvalidMerkleProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"ValueClaimMerkleRootNotFound\",\"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\":\"_stateHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_totalLeaves\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_leafIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ValueClaim\",\"name\":\"_claim\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"_proof\",\"type\":\"bytes32[]\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"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\":[{\"internalType\":\"bytes32\",\"name\":\"_stateHash\",\"type\":\"bytes32\"}],\"name\":\"getValueClaimsMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":[{\"internalType\":\"bytes32\",\"name\":\"_messageId\",\"type\":\"bytes32\"}],\"name\":\"isValueClaimProcessed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\"},{\"internalType\":\"bytes32\",\"name\":\"valueClaimsMerkleRoot\",\"type\":\"bytes32\"},{\"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).\"}],\"ValueClaimAlreadyProcessed(bytes32)\":[{\"details\":\"Thrown when the value claimId (messageId) is already processed.\"}],\"ValueClaimInvalidMerkleProof()\":[{\"details\":\"Thrown when the merkle proof is invalid for value claims.\"}],\"ValueClaimMerkleRootNotFound(bytes32)\":[{\"details\":\"Thrown when the merkle root is not found for the state hash in MessageQueue smart contract.\"}],\"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.\"}},\"claimValue(bytes32,uint256,uint256,(bytes32,address,uint128),bytes32[])\":{\"details\":\"Claims value from the message in the mailbox.\",\"params\":{\"_claim\":\"The value claim data.\",\"_leafIndex\":\"The index of the leaf for which to claim value.\",\"_proof\":\"The merkle proof for the claim.\",\"_stateHash\":\"The state hash for which to claim value.\",\"_totalLeaves\":\"The total number of leaves in the merkle tree.\"}},\"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.\"}},\"getValueClaimsMerkleRoot(bytes32)\":{\"details\":\"Returns the value claims merkle root for the specified state hash. Returns `bytes32(0)` if no merkle root was provided for the given state hash.\",\"params\":{\"_stateHash\":\"Target state hash.\"},\"returns\":{\"_0\":\"merkleRoot Value claims merkle root for the specified state hash.\"}},\"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.\"}},\"isValueClaimProcessed(bytes32)\":{\"details\":\"Checks if value claim was already processed.\",\"params\":{\"_messageId\":\"Message ID to check.\"},\"returns\":{\"_0\":\"isProcessed `true` if value claim was already processed, `false` otherwise.\"}},\"performStateTransition((address,bytes32,bool,address,uint128,bool,bytes32,(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/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"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\":\"0x6c65c742fdc33e8ccc6b8557a3664798ff66461520ff86bd23176d0eb2c651e6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://ce3fd92cb789de14dd326ea038b8a0c9c8a2b23d8ba4a64b89f24bccea5623bf\",\"dweb:/ipfs/QmRZcbFDW6kzBUECKWoXXv4Hkdhbgs6YdSPHfBH4u6Znjp\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0xb587fa7eb4d79594bdd23970eb5223086aa10d77a7ea0df8686f84e02f20d117\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2bdfb5a1e1816c16bc99798ecb4ec1a0552835d8435f54a84b7e535d34588507\",\"dweb:/ipfs/QmeSZuawsKDq4EiRDnrNT69JGxCU6tx4cgCYZ9wgRUMzyn\"]},\"src/libraries/BinaryMerkleTree.sol\":{\"keccak256\":\"0x9f0360417631fe9f255fdeab72afcd488102aa6377f9b741dc2dced621c3a0c0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://c07581a9519f174798cd6166502d4d2ef9477e6cec34ca9f0c2e30bdfbfc723d\",\"dweb:/ipfs/QmbQirZ4f9stnLMviAxhU7hNUKt9YwS2qncTuu9jQyMdvY\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e\",\"dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE\"]}},\"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":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"type":"error","name":"ValueClaimAlreadyProcessed"},{"inputs":[],"type":"error","name":"ValueClaimInvalidMerkleProof"},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32"}],"type":"error","name":"ValueClaimMerkleRootNotFound"},{"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":"_stateHash","type":"bytes32"},{"internalType":"uint256","name":"_totalLeaves","type":"uint256"},{"internalType":"uint256","name":"_leafIndex","type":"uint256"},{"internalType":"struct Gear.ValueClaim","name":"_claim","type":"tuple","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"bytes32[]","name":"_proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"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":[{"internalType":"bytes32","name":"_stateHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueClaimsMerkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":[{"internalType":"bytes32","name":"_messageId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValueClaimProcessed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":"bytes32","name":"valueClaimsMerkleRoot","type":"bytes32"},{"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."}},"claimValue(bytes32,uint256,uint256,(bytes32,address,uint128),bytes32[])":{"details":"Claims value from the message in the mailbox.","params":{"_claim":"The value claim data.","_leafIndex":"The index of the leaf for which to claim value.","_proof":"The merkle proof for the claim.","_stateHash":"The state hash for which to claim value.","_totalLeaves":"The total number of leaves in the merkle tree."}},"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."}},"getValueClaimsMerkleRoot(bytes32)":{"details":"Returns the value claims merkle root for the specified state hash. Returns `bytes32(0)` if no merkle root was provided for the given state hash.","params":{"_stateHash":"Target state hash."},"returns":{"_0":"merkleRoot Value claims merkle root for the specified state hash."}},"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."}},"isValueClaimProcessed(bytes32)":{"details":"Checks if value claim was already processed.","params":{"_messageId":"Message ID to check."},"returns":{"_0":"isProcessed `true` if value claim was already processed, `false` otherwise."}},"performStateTransition((address,bytes32,bool,address,uint128,bool,bytes32,(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/Hashes.sol":{"keccak256":"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269","urls":["bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11","dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"],"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":"0x6c65c742fdc33e8ccc6b8557a3664798ff66461520ff86bd23176d0eb2c651e6","urls":["bzz-raw://ce3fd92cb789de14dd326ea038b8a0c9c8a2b23d8ba4a64b89f24bccea5623bf","dweb:/ipfs/QmRZcbFDW6kzBUECKWoXXv4Hkdhbgs6YdSPHfBH4u6Znjp"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0xb587fa7eb4d79594bdd23970eb5223086aa10d77a7ea0df8686f84e02f20d117","urls":["bzz-raw://2bdfb5a1e1816c16bc99798ecb4ec1a0552835d8435f54a84b7e535d34588507","dweb:/ipfs/QmeSZuawsKDq4EiRDnrNT69JGxCU6tx4cgCYZ9wgRUMzyn"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/BinaryMerkleTree.sol":{"keccak256":"0x9f0360417631fe9f255fdeab72afcd488102aa6377f9b741dc2dced621c3a0c0","urls":["bzz-raw://c07581a9519f174798cd6166502d4d2ef9477e6cec34ca9f0c2e30bdfbfc723d","dweb:/ipfs/QmbQirZ4f9stnLMviAxhU7hNUKt9YwS2qncTuu9jQyMdvY"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7","urls":["bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e","dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":77353,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":77356,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":77359,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":77362,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":77365,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":77368,"contract":"src/Mirror.sol:Mirror","label":"isSmall","offset":20,"slot":"3","type":"t_bool"},{"astId":77372,"contract":"src/Mirror.sol:Mirror","label":"_valueClaimsMerkleRoots","offset":0,"slot":"4","type":"t_mapping(t_bytes32,t_bytes32)"},{"astId":77376,"contract":"src/Mirror.sol:Mirror","label":"_processedValueClaims","offset":0,"slot":"5","type":"t_mapping(t_bytes32,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_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_bytes32)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":78808,"exportedSymbols":{"BinaryMerkleTree":[82846],"ERC1967Utils":[45701],"Gear":[84435],"Hashes":[41483],"ICallbacks":[73742],"IMirror":[74440],"IRouter":[75030],"IWrappedVara":[75046],"Memory":[41257],"Mirror":[78807],"StorageSlot":[49089]},"nodeType":"SourceUnit","src":"74:45288:161","nodes":[{"id":77320,"nodeType":"PragmaDirective","src":"74:24:161","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":77322,"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":78808,"sourceUnit":45702,"symbolAliases":[{"foreign":{"id":77321,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"108:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77324,"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":78808,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":77323,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"193:11:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77326,"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":78808,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":77325,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"268:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77328,"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":78808,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":77327,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"329:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77330,"nodeType":"ImportDirective","src":"395:46:161","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":78808,"sourceUnit":73743,"symbolAliases":[{"foreign":{"id":77329,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"403:10:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77332,"nodeType":"ImportDirective","src":"442:40:161","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":78808,"sourceUnit":74441,"symbolAliases":[{"foreign":{"id":77331,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74440,"src":"450:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77334,"nodeType":"ImportDirective","src":"483:40:161","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":78808,"sourceUnit":75031,"symbolAliases":[{"foreign":{"id":77333,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75030,"src":"491:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77336,"nodeType":"ImportDirective","src":"524:50:161","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":78808,"sourceUnit":75047,"symbolAliases":[{"foreign":{"id":77335,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"532:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77338,"nodeType":"ImportDirective","src":"575:68:161","nodes":[],"absolutePath":"src/libraries/BinaryMerkleTree.sol","file":"src/libraries/BinaryMerkleTree.sol","nameLocation":"-1:-1:-1","scope":78808,"sourceUnit":82847,"symbolAliases":[{"foreign":{"id":77337,"name":"BinaryMerkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82846,"src":"583:16:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77340,"nodeType":"ImportDirective","src":"644:44:161","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":78808,"sourceUnit":84436,"symbolAliases":[{"foreign":{"id":77339,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"652:4:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78807,"nodeType":"ContractDefinition","src":"2690:42671:161","nodes":[{"id":77347,"nodeType":"VariableDeclaration","src":"2969:85:161","nodes":[],"constant":true,"documentation":{"id":77344,"nodeType":"StructuredDocumentation","src":"2723: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":"2995:14:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77345,"name":"address","nodeType":"ElementaryTypeName","src":"2969:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":77346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3012:42:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":77350,"nodeType":"VariableDeclaration","src":"3297:31:161","nodes":[],"baseFunctions":[74308],"constant":false,"documentation":{"id":77348,"nodeType":"StructuredDocumentation","src":"3061: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":"3322:6:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77349,"name":"address","nodeType":"ElementaryTypeName","src":"3297:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77353,"nodeType":"VariableDeclaration","src":"3393:24:161","nodes":[],"baseFunctions":[74314],"constant":false,"documentation":{"id":77351,"nodeType":"StructuredDocumentation","src":"3335:53:161","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"3408:9:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3393:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":77356,"nodeType":"VariableDeclaration","src":"3627:20:161","nodes":[],"baseFunctions":[74320],"constant":false,"documentation":{"id":77354,"nodeType":"StructuredDocumentation","src":"3424: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":"3642:5:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77355,"name":"uint256","nodeType":"ElementaryTypeName","src":"3627:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77359,"nodeType":"VariableDeclaration","src":"3737:18:161","nodes":[],"baseFunctions":[74326],"constant":false,"documentation":{"id":77357,"nodeType":"StructuredDocumentation","src":"3654:78:161","text":" @dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"3749:6:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77358,"name":"bool","nodeType":"ElementaryTypeName","src":"3737:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":77362,"nodeType":"VariableDeclaration","src":"4009:24:161","nodes":[],"baseFunctions":[74332],"constant":false,"documentation":{"id":77360,"nodeType":"StructuredDocumentation","src":"3810: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":"4024:9:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77361,"name":"address","nodeType":"ElementaryTypeName","src":"4009:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77365,"nodeType":"VariableDeclaration","src":"4119:26:161","nodes":[],"baseFunctions":[74338],"constant":false,"documentation":{"id":77363,"nodeType":"StructuredDocumentation","src":"4040:74:161","text":" @dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"4134:11:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77364,"name":"address","nodeType":"ElementaryTypeName","src":"4119:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77368,"nodeType":"VariableDeclaration","src":"7480:12:161","nodes":[],"constant":false,"documentation":{"id":77366,"nodeType":"StructuredDocumentation","src":"4152: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":"7485:7:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77367,"name":"bool","nodeType":"ElementaryTypeName","src":"7480:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":77372,"nodeType":"VariableDeclaration","src":"7499:80:161","nodes":[],"constant":false,"mutability":"mutable","name":"_valueClaimsMerkleRoots","nameLocation":"7556:23:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"typeName":{"id":77371,"keyName":"stateHash","keyNameLocation":"7515:9:161","keyType":{"id":77369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7507:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"7499:48:161","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"valueName":"merkleRoot","valueNameLocation":"7536:10:161","valueType":{"id":77370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7528:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"private"},{"id":77376,"nodeType":"VariableDeclaration","src":"7585:76:161","nodes":[],"constant":false,"mutability":"mutable","name":"_processedValueClaims","nameLocation":"7640:21:161","scope":78807,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":77375,"keyName":"messageId","keyNameLocation":"7601:9:161","keyType":{"id":77373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7593:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"7585:46:161","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"isProcessed","valueNameLocation":"7619:11:161","valueType":{"id":77374,"name":"bool","nodeType":"ElementaryTypeName","src":"7614:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":77387,"nodeType":"FunctionDefinition","src":"7823:62:161","nodes":[],"body":{"id":77386,"nodeType":"Block","src":"7852:33:161","nodes":[],"statements":[{"expression":{"id":77384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77382,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77350,"src":"7862:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77383,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77379,"src":"7871:7:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7862:16:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77385,"nodeType":"ExpressionStatement","src":"7862:16:161"}]},"documentation":{"id":77377,"nodeType":"StructuredDocumentation","src":"7668: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":77380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77379,"mutability":"mutable","name":"_router","nameLocation":"7843:7:161","nodeType":"VariableDeclaration","scope":77387,"src":"7835:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77378,"name":"address","nodeType":"ElementaryTypeName","src":"7835:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7834:17:161"},"returnParameters":{"id":77381,"nodeType":"ParameterList","parameters":[],"src":"7852:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77395,"nodeType":"ModifierDefinition","src":"8042:83:161","nodes":[],"body":{"id":77394,"nodeType":"Block","src":"8074:51:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77390,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77408,"src":"8084:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8084:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77392,"nodeType":"ExpressionStatement","src":"8084:23:161"},{"id":77393,"nodeType":"PlaceholderStatement","src":"8117:1:161"}]},"documentation":{"id":77388,"nodeType":"StructuredDocumentation","src":"7914:123:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"8051:20:161","parameters":{"id":77389,"nodeType":"ParameterList","parameters":[],"src":"8071:2:161"},"virtual":false,"visibility":"internal"},{"id":77408,"nodeType":"FunctionDefinition","src":"8231:107:161","nodes":[],"body":{"id":77407,"nodeType":"Block","src":"8278:60:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77400,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77356,"src":"8296:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8304:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8296:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77403,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74253,"src":"8307:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8307:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77399,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8288:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8288:43:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77406,"nodeType":"ExpressionStatement","src":"8288:43:161"}]},"documentation":{"id":77396,"nodeType":"StructuredDocumentation","src":"8131:95:161","text":" @dev Internal function to check if the init message has been created before."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"8240:21:161","parameters":{"id":77397,"nodeType":"ParameterList","parameters":[],"src":"8261:2:161"},"returnParameters":{"id":77398,"nodeType":"ParameterList","parameters":[],"src":"8278:0:161"},"scope":78807,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77416,"nodeType":"ModifierDefinition","src":"8505:109:161","nodes":[],"body":{"id":77415,"nodeType":"Block","src":"8550:64:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77411,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77434,"src":"8560:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77413,"nodeType":"ExpressionStatement","src":"8560:36:161"},{"id":77414,"nodeType":"PlaceholderStatement","src":"8606:1:161"}]},"documentation":{"id":77409,"nodeType":"StructuredDocumentation","src":"8344: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":"8514:33:161","parameters":{"id":77410,"nodeType":"ParameterList","parameters":[],"src":"8547:2:161"},"virtual":false,"visibility":"internal"},{"id":77434,"nodeType":"FunctionDefinition","src":"8753:172:161","nodes":[],"body":{"id":77433,"nodeType":"Block","src":"8813:112:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77421,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77356,"src":"8831:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8839:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8831:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77424,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8844:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8848:6:161","memberName":"sender","nodeType":"MemberAccess","src":"8844:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77426,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77365,"src":"8858:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8844:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8831:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77429,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"8871:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8871:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77420,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8823:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8823:95:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77432,"nodeType":"ExpressionStatement","src":"8823:95:161"}]},"documentation":{"id":77417,"nodeType":"StructuredDocumentation","src":"8620: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":"8762:34:161","parameters":{"id":77418,"nodeType":"ParameterList","parameters":[],"src":"8796:2:161"},"returnParameters":{"id":77419,"nodeType":"ParameterList","parameters":[],"src":"8813:0:161"},"scope":78807,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77442,"nodeType":"ModifierDefinition","src":"9036:67:161","nodes":[],"body":{"id":77441,"nodeType":"Block","src":"9060:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77437,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77454,"src":"9070:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9070:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77439,"nodeType":"ExpressionStatement","src":"9070:15:161"},{"id":77440,"nodeType":"PlaceholderStatement","src":"9095:1:161"}]},"documentation":{"id":77435,"nodeType":"StructuredDocumentation","src":"8931:100:161","text":" @dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"9045:12:161","parameters":{"id":77436,"nodeType":"ParameterList","parameters":[],"src":"9057:2:161"},"virtual":false,"visibility":"internal"},{"id":77454,"nodeType":"FunctionDefinition","src":"9190:89:161","nodes":[],"body":{"id":77453,"nodeType":"Block","src":"9229:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9247:7:161","subExpression":{"id":77447,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77359,"src":"9248:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77449,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74259,"src":"9256:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9256:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77446,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9239:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9239:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77452,"nodeType":"ExpressionStatement","src":"9239:33:161"}]},"documentation":{"id":77443,"nodeType":"StructuredDocumentation","src":"9109:76:161","text":" @dev Internal function to check if the program is active."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"9199:13:161","parameters":{"id":77444,"nodeType":"ParameterList","parameters":[],"src":"9212:2:161"},"returnParameters":{"id":77445,"nodeType":"ParameterList","parameters":[],"src":"9229:0:161"},"scope":78807,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77462,"nodeType":"ModifierDefinition","src":"9390:67:161","nodes":[],"body":{"id":77461,"nodeType":"Block","src":"9414:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77457,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77473,"src":"9424:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9424:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77459,"nodeType":"ExpressionStatement","src":"9424:15:161"},{"id":77460,"nodeType":"PlaceholderStatement","src":"9449:1:161"}]},"documentation":{"id":77455,"nodeType":"StructuredDocumentation","src":"9285:100:161","text":" @dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"9399:12:161","parameters":{"id":77456,"nodeType":"ParameterList","parameters":[],"src":"9411:2:161"},"virtual":false,"visibility":"internal"},{"id":77473,"nodeType":"FunctionDefinition","src":"9544:91:161","nodes":[],"body":{"id":77472,"nodeType":"Block","src":"9583:52:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77467,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77359,"src":"9601:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77468,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74262,"src":"9609:16:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9609:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77466,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9593:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9593:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77471,"nodeType":"ExpressionStatement","src":"9593:35:161"}]},"documentation":{"id":77463,"nodeType":"StructuredDocumentation","src":"9463:76:161","text":" @dev Internal function to check if the program is exited."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"9553:13:161","parameters":{"id":77464,"nodeType":"ParameterList","parameters":[],"src":"9566:2:161"},"returnParameters":{"id":77465,"nodeType":"ParameterList","parameters":[],"src":"9583:0:161"},"scope":78807,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77481,"nodeType":"ModifierDefinition","src":"9741:63:161","nodes":[],"body":{"id":77480,"nodeType":"Block","src":"9763:41:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77476,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77495,"src":"9773:11:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9773:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77478,"nodeType":"ExpressionStatement","src":"9773:13:161"},{"id":77479,"nodeType":"PlaceholderStatement","src":"9796:1:161"}]},"documentation":{"id":77474,"nodeType":"StructuredDocumentation","src":"9641:95:161","text":" @dev Functions marked with this modifier can only be called by the `Router`."},"name":"onlyRouter","nameLocation":"9750:10:161","parameters":{"id":77475,"nodeType":"ParameterList","parameters":[],"src":"9760:2:161"},"virtual":false,"visibility":"internal"},{"id":77495,"nodeType":"FunctionDefinition","src":"9896:102:161","nodes":[],"body":{"id":77494,"nodeType":"Block","src":"9933:65:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77486,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9951:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9955:6:161","memberName":"sender","nodeType":"MemberAccess","src":"9951:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77488,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77350,"src":"9965:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9951:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77490,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74265,"src":"9973:15:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9973:17:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77485,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9943:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9943:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77493,"nodeType":"ExpressionStatement","src":"9943:48:161"}]},"documentation":{"id":77482,"nodeType":"StructuredDocumentation","src":"9810:81:161","text":" @dev Internal function to check if the caller is the `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"9905:11:161","parameters":{"id":77483,"nodeType":"ParameterList","parameters":[],"src":"9916:2:161"},"returnParameters":{"id":77484,"nodeType":"ParameterList","parameters":[],"src":"9933:0:161"},"scope":78807,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77503,"nodeType":"ModifierDefinition","src":"10120:69:161","nodes":[],"body":{"id":77502,"nodeType":"Block","src":"10145:44:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77498,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77519,"src":"10155:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10155:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77500,"nodeType":"ExpressionStatement","src":"10155:16:161"},{"id":77501,"nodeType":"PlaceholderStatement","src":"10181:1:161"}]},"documentation":{"id":77496,"nodeType":"StructuredDocumentation","src":"10004:111:161","text":" @dev Functions marked with this modifier can only be called when the `Router` is not paused."},"name":"whenNotPaused","nameLocation":"10129:13:161","parameters":{"id":77497,"nodeType":"ParameterList","parameters":[],"src":"10142:2:161"},"virtual":false,"visibility":"internal"},{"id":77519,"nodeType":"FunctionDefinition","src":"10281:108:161","nodes":[],"body":{"id":77518,"nodeType":"Block","src":"10321:68:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10339:25:161","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77509,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77350,"src":"10348:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77508,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75030,"src":"10340:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$75030_$","typeString":"type(contract IRouter)"}},"id":77510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10340:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$75030","typeString":"contract IRouter"}},"id":77511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10356:6:161","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":74793,"src":"10340:22:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":77512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10340:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77514,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74268,"src":"10366:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10366:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77507,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10331:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10331:51:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77517,"nodeType":"ExpressionStatement","src":"10331:51:161"}]},"documentation":{"id":77504,"nodeType":"StructuredDocumentation","src":"10195:81:161","text":" @dev Internal function to check if the `Router` is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"10290:14:161","parameters":{"id":77505,"nodeType":"ParameterList","parameters":[],"src":"10304:2:161"},"returnParameters":{"id":77506,"nodeType":"ParameterList","parameters":[],"src":"10321:0:161"},"scope":78807,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77530,"nodeType":"ModifierDefinition","src":"10527:89:161","nodes":[],"body":{"id":77529,"nodeType":"Block","src":"10566:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77525,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77522,"src":"10592:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77524,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77560,"src":"10576:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10576:22:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77527,"nodeType":"ExpressionStatement","src":"10576:22:161"},{"id":77528,"nodeType":"PlaceholderStatement","src":"10608:1:161"}]},"documentation":{"id":77520,"nodeType":"StructuredDocumentation","src":"10395:127:161","text":" @dev Non-zero Vara value must be transferred from source to `Router` in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"10536:14:161","parameters":{"id":77523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77522,"mutability":"mutable","name":"value","nameLocation":"10559:5:161","nodeType":"VariableDeclaration","scope":77530,"src":"10551:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77521,"name":"uint128","nodeType":"ElementaryTypeName","src":"10551:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10550:15:161"},"virtual":false,"visibility":"internal"},{"id":77560,"nodeType":"FunctionDefinition","src":"10725:228:161","nodes":[],"body":{"id":77559,"nodeType":"Block","src":"10774:179:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"10788:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10797:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10788:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77558,"nodeType":"IfStatement","src":"10784:163:161","trueBody":{"id":77557,"nodeType":"Block","src":"10800:147:161","statements":[{"assignments":[77540],"declarations":[{"constant":false,"id":77540,"mutability":"mutable","name":"success","nameLocation":"10819:7:161","nodeType":"VariableDeclaration","scope":77557,"src":"10814:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77539,"name":"bool","nodeType":"ElementaryTypeName","src":"10814:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77550,"initialValue":{"arguments":[{"expression":{"id":77545,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10857:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10861:6:161","memberName":"sender","nodeType":"MemberAccess","src":"10857:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77547,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77350,"src":"10869:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77548,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"10877: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":77542,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77350,"src":"10836:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77541,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78715,"src":"10829:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75046_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10829:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":77544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10844:12:161","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"10829: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":77549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10829:54:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10814:69:161"},{"expression":{"arguments":[{"id":77552,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77540,"src":"10905:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77553,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74271,"src":"10914:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10914:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10897:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10897:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77556,"nodeType":"ExpressionStatement","src":"10897:39:161"}]}}]},"documentation":{"id":77531,"nodeType":"StructuredDocumentation","src":"10622:98:161","text":" @dev Internal function to transfer non-zero Vara value from source to `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"10734:15:161","parameters":{"id":77534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77533,"mutability":"mutable","name":"value","nameLocation":"10758:5:161","nodeType":"VariableDeclaration","scope":77560,"src":"10750:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77532,"name":"uint128","nodeType":"ElementaryTypeName","src":"10750:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10749:15:161"},"returnParameters":{"id":77535,"nodeType":"ParameterList","parameters":[],"src":"10774:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77587,"nodeType":"FunctionDefinition","src":"11092:215:161","nodes":[],"body":{"id":77586,"nodeType":"Block","src":"11142:165:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77566,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77563,"src":"11156:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11165:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11156:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77585,"nodeType":"IfStatement","src":"11152:149:161","trueBody":{"id":77584,"nodeType":"Block","src":"11168:133:161","statements":[{"assignments":[77570,null],"declarations":[{"constant":false,"id":77570,"mutability":"mutable","name":"success","nameLocation":"11188:7:161","nodeType":"VariableDeclaration","scope":77584,"src":"11183:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77569,"name":"bool","nodeType":"ElementaryTypeName","src":"11183:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77577,"initialValue":{"arguments":[{"hexValue":"","id":77575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11226: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":77571,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77350,"src":"11200:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11207:4:161","memberName":"call","nodeType":"MemberAccess","src":"11200: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":77574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":77573,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77563,"src":"11219:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"11200: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":77576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11200:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"11182:47:161"},{"expression":{"arguments":[{"id":77579,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77570,"src":"11251:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77580,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74274,"src":"11260:27:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11243:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11243:47:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77583,"nodeType":"ExpressionStatement","src":"11243:47:161"}]}}]},"documentation":{"id":77561,"nodeType":"StructuredDocumentation","src":"10959: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":"11101:16:161","parameters":{"id":77564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77563,"mutability":"mutable","name":"value","nameLocation":"11126:5:161","nodeType":"VariableDeclaration","scope":77587,"src":"11118:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77562,"name":"uint128","nodeType":"ElementaryTypeName","src":"11118:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"11117:15:161"},"returnParameters":{"id":77565,"nodeType":"ParameterList","parameters":[],"src":"11142:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77600,"nodeType":"FunctionDefinition","src":"11651:145:161","nodes":[],"body":{"id":77599,"nodeType":"Block","src":"11737:59:161","nodes":[],"statements":[{"expression":{"baseExpression":{"id":77595,"name":"_valueClaimsMerkleRoots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77372,"src":"11754:23:161","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":77597,"indexExpression":{"id":77596,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77590,"src":"11778:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11754:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77594,"id":77598,"nodeType":"Return","src":"11747:42:161"}]},"baseFunctions":[74346],"documentation":{"id":77588,"nodeType":"StructuredDocumentation","src":"11341:305:161","text":" @dev Returns the value claims merkle root for the specified state hash.\n Returns `bytes32(0)` if no merkle root was provided for the given state hash.\n @param _stateHash Target state hash.\n @return merkleRoot Value claims merkle root for the specified state hash."},"functionSelector":"04d12f83","implemented":true,"kind":"function","modifiers":[],"name":"getValueClaimsMerkleRoot","nameLocation":"11660:24:161","parameters":{"id":77591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77590,"mutability":"mutable","name":"_stateHash","nameLocation":"11693:10:161","nodeType":"VariableDeclaration","scope":77600,"src":"11685:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11685:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11684:20:161"},"returnParameters":{"id":77594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77600,"src":"11728:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11728:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11727:9:161"},"scope":78807,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77613,"nodeType":"FunctionDefinition","src":"12012:137:161","nodes":[],"body":{"id":77612,"nodeType":"Block","src":"12092:57:161","nodes":[],"statements":[{"expression":{"baseExpression":{"id":77608,"name":"_processedValueClaims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77376,"src":"12109:21:161","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":77610,"indexExpression":{"id":77609,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77603,"src":"12131:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12109:33:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77607,"id":77611,"nodeType":"Return","src":"12102:40:161"}]},"baseFunctions":[74354],"documentation":{"id":77601,"nodeType":"StructuredDocumentation","src":"11802:205:161","text":" @dev Checks if value claim was already processed.\n @param _messageId Message ID to check.\n @return isProcessed `true` if value claim was already processed, `false` otherwise."},"functionSelector":"0f2b47d4","implemented":true,"kind":"function","modifiers":[],"name":"isValueClaimProcessed","nameLocation":"12021:21:161","parameters":{"id":77604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77603,"mutability":"mutable","name":"_messageId","nameLocation":"12051:10:161","nodeType":"VariableDeclaration","scope":77613,"src":"12043:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77602,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12043:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12042:20:161"},"returnParameters":{"id":77607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77606,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77613,"src":"12086:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77605,"name":"bool","nodeType":"ElementaryTypeName","src":"12086:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12085:6:161"},"scope":78807,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77631,"nodeType":"FunctionDefinition","src":"12534:216:161","nodes":[],"body":{"id":77630,"nodeType":"Block","src":"12692:58:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77626,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"12722:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77627,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77618,"src":"12732:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77625,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78104,"src":"12709: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":77628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12709:34:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77624,"id":77629,"nodeType":"Return","src":"12702:41:161"}]},"baseFunctions":[74364],"documentation":{"id":77614,"nodeType":"StructuredDocumentation","src":"12204: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":77621,"kind":"modifierInvocation","modifierName":{"id":77620,"name":"whenNotPaused","nameLocations":["12638:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77503,"src":"12638:13:161"},"nodeType":"ModifierInvocation","src":"12638:13:161"}],"name":"sendMessage","nameLocation":"12543:11:161","parameters":{"id":77619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77616,"mutability":"mutable","name":"_payload","nameLocation":"12570:8:161","nodeType":"VariableDeclaration","scope":77631,"src":"12555:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77615,"name":"bytes","nodeType":"ElementaryTypeName","src":"12555:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77618,"mutability":"mutable","name":"_callReply","nameLocation":"12585:10:161","nodeType":"VariableDeclaration","scope":77631,"src":"12580:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77617,"name":"bool","nodeType":"ElementaryTypeName","src":"12580:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12554:42:161"},"returnParameters":{"id":77624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77623,"mutability":"mutable","name":"messageId","nameLocation":"12677:9:161","nodeType":"VariableDeclaration","scope":77631,"src":"12669:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12669:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12668:19:161"},"scope":78807,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77666,"nodeType":"FunctionDefinition","src":"13291:340:161","nodes":[],"body":{"id":77665,"nodeType":"Block","src":"13464:167:161","nodes":[],"statements":[{"assignments":[77646],"declarations":[{"constant":false,"id":77646,"mutability":"mutable","name":"_value","nameLocation":"13482:6:161","nodeType":"VariableDeclaration","scope":77665,"src":"13474:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77645,"name":"uint128","nodeType":"ElementaryTypeName","src":"13474:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77652,"initialValue":{"arguments":[{"expression":{"id":77649,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13499:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13503:5:161","memberName":"value","nodeType":"MemberAccess","src":"13499:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13491:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77647,"name":"uint128","nodeType":"ElementaryTypeName","src":"13491:7:161","typeDescriptions":{}}},"id":77651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13491:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"13474:35:161"},{"expression":{"arguments":[{"id":77654,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77646,"src":"13537:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77653,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77587,"src":"13520:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13520:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77656,"nodeType":"ExpressionStatement","src":"13520:24:161"},{"eventCall":{"arguments":[{"id":77658,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77634,"src":"13583:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77659,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13595:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13599:6:161","memberName":"sender","nodeType":"MemberAccess","src":"13595:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77661,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77636,"src":"13607:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77662,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77646,"src":"13617: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":77657,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"13560: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":77663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13560:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77664,"nodeType":"EmitStatement","src":"13555:69:161"}]},"baseFunctions":[74372],"documentation":{"id":77632,"nodeType":"StructuredDocumentation","src":"12756: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":77639,"kind":"modifierInvocation","modifierName":{"id":77638,"name":"whenNotPaused","nameLocations":["13396:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77503,"src":"13396:13:161"},"nodeType":"ModifierInvocation","src":"13396:13:161"},{"id":77641,"kind":"modifierInvocation","modifierName":{"id":77640,"name":"onlyIfActive","nameLocations":["13418:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77442,"src":"13418:12:161"},"nodeType":"ModifierInvocation","src":"13418:12:161"},{"id":77643,"kind":"modifierInvocation","modifierName":{"id":77642,"name":"onlyAfterInitMessage","nameLocations":["13439:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77395,"src":"13439:20:161"},"nodeType":"ModifierInvocation","src":"13439:20:161"}],"name":"sendReply","nameLocation":"13300:9:161","parameters":{"id":77637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77634,"mutability":"mutable","name":"_repliedTo","nameLocation":"13318:10:161","nodeType":"VariableDeclaration","scope":77666,"src":"13310:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77633,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13310:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77636,"mutability":"mutable","name":"_payload","nameLocation":"13345:8:161","nodeType":"VariableDeclaration","scope":77666,"src":"13330:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77635,"name":"bytes","nodeType":"ElementaryTypeName","src":"13330:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13309:45:161"},"returnParameters":{"id":77644,"nodeType":"ParameterList","parameters":[],"src":"13464:0:161"},"scope":78807,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77685,"nodeType":"FunctionDefinition","src":"13921:165:161","nodes":[],"body":{"id":77684,"nodeType":"Block","src":"14018:68:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77679,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77669,"src":"14056:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77680,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14068:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14072:6:161","memberName":"sender","nodeType":"MemberAccess","src":"14068:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77678,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"14033:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":77682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14033:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77683,"nodeType":"EmitStatement","src":"14028:51:161"}]},"baseFunctions":[74378],"documentation":{"id":77667,"nodeType":"StructuredDocumentation","src":"13704: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":77672,"kind":"modifierInvocation","modifierName":{"id":77671,"name":"whenNotPaused","nameLocations":["13970:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77503,"src":"13970:13:161"},"nodeType":"ModifierInvocation","src":"13970:13:161"},{"id":77674,"kind":"modifierInvocation","modifierName":{"id":77673,"name":"onlyIfActive","nameLocations":["13984:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77442,"src":"13984:12:161"},"nodeType":"ModifierInvocation","src":"13984:12:161"},{"id":77676,"kind":"modifierInvocation","modifierName":{"id":77675,"name":"onlyAfterInitMessage","nameLocations":["13997:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77395,"src":"13997:20:161"},"nodeType":"ModifierInvocation","src":"13997:20:161"}],"name":"claimValue","nameLocation":"13930:10:161","parameters":{"id":77670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77669,"mutability":"mutable","name":"_claimedId","nameLocation":"13949:10:161","nodeType":"VariableDeclaration","scope":77685,"src":"13941:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77668,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13941:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13940:20:161"},"returnParameters":{"id":77677,"nodeType":"ParameterList","parameters":[],"src":"14018:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77703,"nodeType":"FunctionDefinition","src":"14387:168:161","nodes":[],"body":{"id":77702,"nodeType":"Block","src":"14494:61:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77699,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77688,"src":"14541:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77698,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"14509:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14509:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77701,"nodeType":"EmitStatement","src":"14504:44:161"}]},"baseFunctions":[74384],"documentation":{"id":77686,"nodeType":"StructuredDocumentation","src":"14092: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":77691,"kind":"modifierInvocation","modifierName":{"id":77690,"name":"whenNotPaused","nameLocations":["14444:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77503,"src":"14444:13:161"},"nodeType":"ModifierInvocation","src":"14444:13:161"},{"id":77693,"kind":"modifierInvocation","modifierName":{"id":77692,"name":"onlyIfActive","nameLocations":["14458:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77442,"src":"14458:12:161"},"nodeType":"ModifierInvocation","src":"14458:12:161"},{"arguments":[{"id":77695,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77688,"src":"14486:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":77696,"kind":"modifierInvocation","modifierName":{"id":77694,"name":"retrievingVara","nameLocations":["14471:14:161"],"nodeType":"IdentifierPath","referencedDeclaration":77530,"src":"14471:14:161"},"nodeType":"ModifierInvocation","src":"14471:22:161"}],"name":"executableBalanceTopUp","nameLocation":"14396:22:161","parameters":{"id":77689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77688,"mutability":"mutable","name":"_value","nameLocation":"14427:6:161","nodeType":"VariableDeclaration","scope":77703,"src":"14419:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77687,"name":"uint128","nodeType":"ElementaryTypeName","src":"14419:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"14418:16:161"},"returnParameters":{"id":77697,"nodeType":"ParameterList","parameters":[],"src":"14494:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77751,"nodeType":"FunctionDefinition","src":"15262:374:161","nodes":[],"body":{"id":77750,"nodeType":"Block","src":"15437:199:161","nodes":[],"statements":[{"clauses":[{"block":{"id":77737,"nodeType":"Block","src":"15531:2:161","statements":[]},"errorName":"","id":77738,"nodeType":"TryCatchClause","src":"15531:2:161"},{"block":{"id":77739,"nodeType":"Block","src":"15540:2:161","statements":[]},"errorName":"","id":77740,"nodeType":"TryCatchClause","src":"15534:8:161"}],"externalCall":{"arguments":[{"expression":{"id":77725,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15473:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15477:6:161","memberName":"sender","nodeType":"MemberAccess","src":"15473:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77729,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15493:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78807","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78807","typeString":"contract Mirror"}],"id":77728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15485:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77727,"name":"address","nodeType":"ElementaryTypeName","src":"15485:7:161","typeDescriptions":{}}},"id":77730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15485:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77731,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77706,"src":"15500:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77732,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77708,"src":"15508:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77733,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77710,"src":"15519:2:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":77734,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77712,"src":"15523:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77735,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77714,"src":"15527: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":77722,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77350,"src":"15458:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77721,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78715,"src":"15451:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75046_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15451:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":77724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15466:6:161","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"15451: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":77736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15451:79:161","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77741,"nodeType":"TryStatement","src":"15447:95:161"},{"expression":{"arguments":[{"id":77743,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77706,"src":"15567:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77742,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77560,"src":"15551:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15551:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77745,"nodeType":"ExpressionStatement","src":"15551:23:161"},{"eventCall":{"arguments":[{"id":77747,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77706,"src":"15622:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77746,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"15590:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15590:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77749,"nodeType":"EmitStatement","src":"15585:44:161"}]},"baseFunctions":[74398],"documentation":{"id":77704,"nodeType":"StructuredDocumentation","src":"14561: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":77717,"kind":"modifierInvocation","modifierName":{"id":77716,"name":"whenNotPaused","nameLocations":["15398:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77503,"src":"15398:13:161"},"nodeType":"ModifierInvocation","src":"15398:13:161"},{"id":77719,"kind":"modifierInvocation","modifierName":{"id":77718,"name":"onlyIfActive","nameLocations":["15420:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77442,"src":"15420:12:161"},"nodeType":"ModifierInvocation","src":"15420:12:161"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"15271:32:161","parameters":{"id":77715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77706,"mutability":"mutable","name":"_value","nameLocation":"15312:6:161","nodeType":"VariableDeclaration","scope":77751,"src":"15304:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77705,"name":"uint128","nodeType":"ElementaryTypeName","src":"15304:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77708,"mutability":"mutable","name":"_deadline","nameLocation":"15328:9:161","nodeType":"VariableDeclaration","scope":77751,"src":"15320:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77707,"name":"uint256","nodeType":"ElementaryTypeName","src":"15320:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77710,"mutability":"mutable","name":"_v","nameLocation":"15345:2:161","nodeType":"VariableDeclaration","scope":77751,"src":"15339:8:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77709,"name":"uint8","nodeType":"ElementaryTypeName","src":"15339:5:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":77712,"mutability":"mutable","name":"_r","nameLocation":"15357:2:161","nodeType":"VariableDeclaration","scope":77751,"src":"15349:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15349:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77714,"mutability":"mutable","name":"_s","nameLocation":"15369:2:161","nodeType":"VariableDeclaration","scope":77751,"src":"15361:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15361:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15303:69:161"},"returnParameters":{"id":77720,"nodeType":"ParameterList","parameters":[],"src":"15437:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77769,"nodeType":"FunctionDefinition","src":"15882:208:161","nodes":[],"body":{"id":77768,"nodeType":"Block","src":"15947:143:161","nodes":[],"statements":[{"assignments":[null,77758],"declarations":[null,{"constant":false,"id":77758,"mutability":"mutable","name":"success","nameLocation":"15965:7:161","nodeType":"VariableDeclaration","scope":77768,"src":"15960:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77757,"name":"bool","nodeType":"ElementaryTypeName","src":"15960:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77761,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77759,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"15976:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":77760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15976:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"15957:52:161"},{"expression":{"arguments":[{"id":77763,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77758,"src":"16027:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77764,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74277,"src":"16036:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16036:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16019:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16019:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77767,"nodeType":"ExpressionStatement","src":"16019:64:161"}]},"baseFunctions":[74402],"documentation":{"id":77752,"nodeType":"StructuredDocumentation","src":"15642: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":77755,"kind":"modifierInvocation","modifierName":{"id":77754,"name":"whenNotPaused","nameLocations":["15933:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77503,"src":"15933:13:161"},"nodeType":"ModifierInvocation","src":"15933:13:161"}],"name":"transferLockedValueToInheritor","nameLocation":"15891:30:161","parameters":{"id":77753,"nodeType":"ParameterList","parameters":[],"src":"15921:2:161"},"returnParameters":{"id":77756,"nodeType":"ParameterList","parameters":[],"src":"15947:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77875,"nodeType":"FunctionDefinition","src":"16548:1052:161","nodes":[],"body":{"id":77874,"nodeType":"Block","src":"16745:855:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16763:40:161","subExpression":{"baseExpression":{"id":77786,"name":"_processedValueClaims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77376,"src":"16764:21:161","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":77789,"indexExpression":{"expression":{"id":77787,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"16786:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16793:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83545,"src":"16786:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16764:39:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":77792,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"16832:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16839:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83545,"src":"16832:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77791,"name":"ValueClaimAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74282,"src":"16805:26:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":77794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16805:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77785,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16755:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16755:95:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77796,"nodeType":"ExpressionStatement","src":"16755:95:161"},{"assignments":[77798],"declarations":[{"constant":false,"id":77798,"mutability":"mutable","name":"merkleRoot","nameLocation":"16869:10:161","nodeType":"VariableDeclaration","scope":77874,"src":"16861:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16861:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77802,"initialValue":{"baseExpression":{"id":77799,"name":"_valueClaimsMerkleRoots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77372,"src":"16882:23:161","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":77801,"indexExpression":{"id":77800,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77772,"src":"16906:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16882:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16861:56:161"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77804,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77798,"src":"16935:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":77807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16957: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":77806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16949:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":77805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16949:7:161","typeDescriptions":{}}},"id":77808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16949:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16935:24:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":77811,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77772,"src":"16990:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77810,"name":"ValueClaimMerkleRootNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74287,"src":"16961:28:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":77812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16961:40:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77803,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16927:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16927:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77814,"nodeType":"ExpressionStatement","src":"16927:75:161"},{"assignments":[77816],"declarations":[{"constant":false,"id":77816,"mutability":"mutable","name":"claimHash","nameLocation":"17021:9:161","nodeType":"VariableDeclaration","scope":77874,"src":"17013:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77815,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17013:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77826,"initialValue":{"arguments":[{"expression":{"id":77819,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17053:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17060:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83545,"src":"17053:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77821,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17071:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17078:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83547,"src":"17071:18:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77823,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17091:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17098:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83549,"src":"17091:12: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":77817,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"17033:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":77818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17038:14:161","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":83749,"src":"17033: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":77825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17033:71:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17013:91:161"},{"expression":{"arguments":[{"arguments":[{"id":77830,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77798,"src":"17172:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77831,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77782,"src":"17184:6:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":77832,"name":"_totalLeaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77774,"src":"17192:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77833,"name":"_leafIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17206:10:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77834,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"17218:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77828,"name":"BinaryMerkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82846,"src":"17135:16:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BinaryMerkleTree_$82846_$","typeString":"type(library BinaryMerkleTree)"}},"id":77829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:19:161","memberName":"verifyProofCalldata","nodeType":"MemberAccess","referencedDeclaration":82595,"src":"17135:36:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32[] calldata,uint256,uint256,bytes32) pure returns (bool)"}},"id":77835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17135:93:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77836,"name":"ValueClaimInvalidMerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74290,"src":"17242:28: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":"17242:30:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77827,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17114: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":"17114:168:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77839,"nodeType":"ExpressionStatement","src":"17114:168:161"},{"expression":{"id":77845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77840,"name":"_processedValueClaims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77376,"src":"17293:21:161","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":77843,"indexExpression":{"expression":{"id":77841,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17315:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17322:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83545,"src":"17315:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17293:39:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17335:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17293:46:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77846,"nodeType":"ExpressionStatement","src":"17293:46:161"},{"assignments":[77848],"declarations":[{"constant":false,"id":77848,"mutability":"mutable","name":"success","nameLocation":"17355:7:161","nodeType":"VariableDeclaration","scope":77874,"src":"17350:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77847,"name":"bool","nodeType":"ElementaryTypeName","src":"17350:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77855,"initialValue":{"arguments":[{"expression":{"id":77850,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17380:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17387:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83547,"src":"17380:18:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77852,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17400:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17407:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83549,"src":"17400:12:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77849,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78745,"src":"17365:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17365:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17350:63:161"},{"condition":{"id":77856,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77848,"src":"17427:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77872,"nodeType":"Block","src":"17516:78:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77866,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17552:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17559:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83545,"src":"17552:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77868,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17570:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17577:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83549,"src":"17570:12:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77865,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"17535:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17535:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77871,"nodeType":"EmitStatement","src":"17530:53:161"}]},"id":77873,"nodeType":"IfStatement","src":"17423:171:161","trueBody":{"id":77864,"nodeType":"Block","src":"17436:74:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77858,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17468:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17475:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83545,"src":"17468:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77860,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77779,"src":"17486:6:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17493:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83549,"src":"17486:12:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77857,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"17455:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17455:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77863,"nodeType":"EmitStatement","src":"17450:49:161"}]}}]},"baseFunctions":[74418],"documentation":{"id":77770,"nodeType":"StructuredDocumentation","src":"16165:378:161","text":" @dev Claims value from the message in the mailbox.\n @param _stateHash The state hash for which to claim value.\n @param _totalLeaves The total number of leaves in the merkle tree.\n @param _leafIndex The index of the leaf for which to claim value.\n @param _claim The value claim data.\n @param _proof The merkle proof for the claim."},"functionSelector":"40ea94fe","implemented":true,"kind":"function","modifiers":[],"name":"claimValue","nameLocation":"16557:10:161","parameters":{"id":77783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77772,"mutability":"mutable","name":"_stateHash","nameLocation":"16585:10:161","nodeType":"VariableDeclaration","scope":77875,"src":"16577:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77771,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16577:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77774,"mutability":"mutable","name":"_totalLeaves","nameLocation":"16613:12:161","nodeType":"VariableDeclaration","scope":77875,"src":"16605:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77773,"name":"uint256","nodeType":"ElementaryTypeName","src":"16605:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77776,"mutability":"mutable","name":"_leafIndex","nameLocation":"16643:10:161","nodeType":"VariableDeclaration","scope":77875,"src":"16635:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77775,"name":"uint256","nodeType":"ElementaryTypeName","src":"16635:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77779,"mutability":"mutable","name":"_claim","nameLocation":"16688:6:161","nodeType":"VariableDeclaration","scope":77875,"src":"16663:31:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":77778,"nodeType":"UserDefinedTypeName","pathNode":{"id":77777,"name":"Gear.ValueClaim","nameLocations":["16663:4:161","16668:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83550,"src":"16663:15:161"},"referencedDeclaration":83550,"src":"16663:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83550_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"},{"constant":false,"id":77782,"mutability":"mutable","name":"_proof","nameLocation":"16723:6:161","nodeType":"VariableDeclaration","scope":77875,"src":"16704:25:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":77780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16704:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77781,"nodeType":"ArrayTypeName","src":"16704:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"16567:168:161"},"returnParameters":{"id":77784,"nodeType":"ParameterList","parameters":[],"src":"16745:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77954,"nodeType":"FunctionDefinition","src":"18598:749:161","nodes":[],"body":{"id":77953,"nodeType":"Block","src":"18753:594:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77890,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77365,"src":"18771:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18794: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":77892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18786:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77891,"name":"address","nodeType":"ElementaryTypeName","src":"18786:7:161","typeDescriptions":{}}},"id":77894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18786:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18771:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77896,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74292,"src":"18798:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18798:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77889,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18763:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18763:59:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77899,"nodeType":"ExpressionStatement","src":"18763:59:161"},{"expression":{"arguments":[{"id":77902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18841:8:161","subExpression":{"id":77901,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77368,"src":"18842:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77903,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74294,"src":"18851:17:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18851:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77900,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18833:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18833:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77906,"nodeType":"ExpressionStatement","src":"18833:38:161"},{"assignments":[77911],"declarations":[{"constant":false,"id":77911,"mutability":"mutable","name":"implementationSlot","nameLocation":"18914:18:161","nodeType":"VariableDeclaration","scope":77953,"src":"18882:50:161","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":77910,"nodeType":"UserDefinedTypeName","pathNode":{"id":77909,"name":"StorageSlot.AddressSlot","nameLocations":["18882:11:161","18894:11:161"],"nodeType":"IdentifierPath","referencedDeclaration":48971,"src":"18882:23:161"},"referencedDeclaration":48971,"src":"18882:23:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":77917,"initialValue":{"arguments":[{"expression":{"id":77914,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"18974:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45701_$","typeString":"type(library ERC1967Utils)"}},"id":77915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18987:19:161","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":45422,"src":"18974:32:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77912,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"18947:11:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18959:14:161","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":49000,"src":"18947: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":77916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18947:60:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18882:125:161"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77919,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77911,"src":"19026:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19045:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"19026:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19062: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":77922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19054:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77921,"name":"address","nodeType":"ElementaryTypeName","src":"19054:7:161","typeDescriptions":{}}},"id":77924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19054:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19026:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77926,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74296,"src":"19066:22:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19066:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77918,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19018:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19018:73:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77929,"nodeType":"ExpressionStatement","src":"19018:73:161"},{"expression":{"id":77932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77930,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77365,"src":"19102:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77931,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77878,"src":"19116:12:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19102:26:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77933,"nodeType":"ExpressionStatement","src":"19102:26:161"},{"expression":{"id":77936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77934,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77368,"src":"19138:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77935,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77882,"src":"19148:8:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19138:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77937,"nodeType":"ExpressionStatement","src":"19138:18:161"},{"expression":{"id":77942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77938,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77911,"src":"19166:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19185:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"19166:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77941,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77880,"src":"19193:13:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19166:40:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77943,"nodeType":"ExpressionStatement","src":"19166:40:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77944,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77884,"src":"19221:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19250:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19221:30:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77952,"nodeType":"IfStatement","src":"19217:124:161","trueBody":{"id":77951,"nodeType":"Block","src":"19253:88:161","statements":[{"eventCall":{"arguments":[{"id":77948,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77884,"src":"19304:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77947,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"19272:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19272:58:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77950,"nodeType":"EmitStatement","src":"19267:63:161"}]}}]},"baseFunctions":[74430],"documentation":{"id":77876,"nodeType":"StructuredDocumentation","src":"17660: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":77887,"kind":"modifierInvocation","modifierName":{"id":77886,"name":"onlyRouter","nameLocations":["18738:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77481,"src":"18738:10:161"},"nodeType":"ModifierInvocation","src":"18738:10:161"}],"name":"initialize","nameLocation":"18607:10:161","parameters":{"id":77885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77878,"mutability":"mutable","name":"_initializer","nameLocation":"18626:12:161","nodeType":"VariableDeclaration","scope":77954,"src":"18618:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77877,"name":"address","nodeType":"ElementaryTypeName","src":"18618:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77880,"mutability":"mutable","name":"_abiInterface","nameLocation":"18648:13:161","nodeType":"VariableDeclaration","scope":77954,"src":"18640:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77879,"name":"address","nodeType":"ElementaryTypeName","src":"18640:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77882,"mutability":"mutable","name":"_isSmall","nameLocation":"18668:8:161","nodeType":"VariableDeclaration","scope":77954,"src":"18663:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77881,"name":"bool","nodeType":"ElementaryTypeName","src":"18663:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":77884,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"18686:25:161","nodeType":"VariableDeclaration","scope":77954,"src":"18678:33:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77883,"name":"uint128","nodeType":"ElementaryTypeName","src":"18678:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"18617:95:161"},"returnParameters":{"id":77888,"nodeType":"ParameterList","parameters":[],"src":"18753:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78054,"nodeType":"FunctionDefinition","src":"19561:1806:161","nodes":[],"body":{"id":78053,"nodeType":"Block","src":"19733:1634:161","nodes":[],"statements":[{"documentation":" @dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77966,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"19844:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19856:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83486,"src":"19844:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":77970,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19875:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78807","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78807","typeString":"contract Mirror"}],"id":77969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19867:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77968,"name":"address","nodeType":"ElementaryTypeName","src":"19867:7:161","typeDescriptions":{}}},"id":77971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19867:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19844:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77973,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19882:14:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19882:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77965,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19836:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19836:63:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77976,"nodeType":"ExpressionStatement","src":"19836:63:161"},{"condition":{"expression":{"id":77977,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20032:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20044:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83501,"src":"20032:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":77985,"nodeType":"IfStatement","src":"20028:113:161","trueBody":{"id":77984,"nodeType":"Block","src":"20072:69:161","statements":[{"expression":{"arguments":[{"expression":{"id":77980,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20103:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20115:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83498,"src":"20103:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77979,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77587,"src":"20086:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20086:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77983,"nodeType":"ExpressionStatement","src":"20086:44:161"}]}},{"assignments":[77988],"declarations":[{"constant":false,"id":77988,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"20227:18:161","nodeType":"VariableDeclaration","scope":78053,"src":"20219:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77987,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20219:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":77993,"initialValue":{"arguments":[{"expression":{"id":77990,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20262:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20274:8:161","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":83509,"src":"20262:20:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83446_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$83446_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":77989,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78235,"src":"20248:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$83446_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":77992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20248:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"20219:64:161"},{"documentation":" @dev Sets merkle root of value claims for the new state hash.","expression":{"arguments":[{"expression":{"id":77995,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20404:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20416:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83489,"src":"20404:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77997,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20430:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20442:21:161","memberName":"valueClaimsMerkleRoot","nodeType":"MemberAccess","referencedDeclaration":83504,"src":"20430:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77994,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"20391:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":77999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20391:73:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78000,"nodeType":"ExpressionStatement","src":"20391:73:161"},{"condition":{"expression":{"id":78001,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20544:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20556:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83492,"src":"20544:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":78021,"nodeType":"Block","src":"20631:92:161","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78010,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20653:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20665:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83495,"src":"20653:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":78014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20686: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":78013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20678:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78012,"name":"address","nodeType":"ElementaryTypeName","src":"20678:7:161","typeDescriptions":{}}},"id":78015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20678:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20653:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78017,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74300,"src":"20690:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20690:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78009,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20645:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20645:67:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78020,"nodeType":"ExpressionStatement","src":"20645:67:161"}]},"id":78022,"nodeType":"IfStatement","src":"20540:183:161","trueBody":{"id":78008,"nodeType":"Block","src":"20564:61:161","statements":[{"expression":{"arguments":[{"expression":{"id":78004,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20592:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20604:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83495,"src":"20592:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78003,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78678,"src":"20578:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20578:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78007,"nodeType":"ExpressionStatement","src":"20578:36:161"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78023,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77353,"src":"20811:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78024,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20824:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20836:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83489,"src":"20824:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"20811:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Update the state hash if changed.","id":78033,"nodeType":"IfStatement","src":"20807:110:161","trueBody":{"id":78032,"nodeType":"Block","src":"20850:67:161","statements":[{"expression":{"arguments":[{"expression":{"id":78028,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"20881:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20893:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83489,"src":"20881:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78027,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78693,"src":"20864:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20864:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78031,"nodeType":"ExpressionStatement","src":"20864:42:161"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":78036,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"21055:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21067:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83486,"src":"21055:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78038,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"21088:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21100:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83489,"src":"21088:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78040,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"21126:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21138:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83492,"src":"21126:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":78042,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"21158:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21170:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83495,"src":"21158:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78044,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"21193:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83498,"src":"21193:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":78046,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"21233:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21245:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83501,"src":"21233:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":78048,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77958,"src":"21285:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":78049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21297:21:161","memberName":"valueClaimsMerkleRoot","nodeType":"MemberAccess","referencedDeclaration":83504,"src":"21285:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":78050,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21332: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":78034,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"21017:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":78035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21022:19:161","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":83786,"src":"21017: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":78051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21017:343:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77964,"id":78052,"nodeType":"Return","src":"21010:350:161"}]},"baseFunctions":[74439],"documentation":{"id":77955,"nodeType":"StructuredDocumentation","src":"19353: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":"4b885b9a","implemented":true,"kind":"function","modifiers":[{"id":77961,"kind":"modifierInvocation","modifierName":{"id":77960,"name":"onlyRouter","nameLocations":["19677:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77481,"src":"19677:10:161"},"nodeType":"ModifierInvocation","src":"19677:10:161"}],"name":"performStateTransition","nameLocation":"19570:22:161","parameters":{"id":77959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77958,"mutability":"mutable","name":"_transition","nameLocation":"19623:11:161","nodeType":"VariableDeclaration","scope":78054,"src":"19593:41:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":77957,"nodeType":"UserDefinedTypeName","pathNode":{"id":77956,"name":"Gear.StateTransition","nameLocations":["19593:4:161","19598:15:161"],"nodeType":"IdentifierPath","referencedDeclaration":83510,"src":"19593:20:161"},"referencedDeclaration":83510,"src":"19593:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"19592:43:161"},"returnParameters":{"id":77964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77963,"mutability":"mutable","name":"transitionHash","nameLocation":"19713:14:161","nodeType":"VariableDeclaration","scope":78054,"src":"19705:22:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19705:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19704:24:161"},"scope":78807,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":78104,"nodeType":"FunctionDefinition","src":"21800:760:161","nodes":[],"body":{"id":78103,"nodeType":"Block","src":"21983:577:161","nodes":[],"statements":[{"assignments":[78069],"declarations":[{"constant":false,"id":78069,"mutability":"mutable","name":"_value","nameLocation":"22001:6:161","nodeType":"VariableDeclaration","scope":78103,"src":"21993:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78068,"name":"uint128","nodeType":"ElementaryTypeName","src":"21993:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":78075,"initialValue":{"arguments":[{"expression":{"id":78072,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22018:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22022:5:161","memberName":"value","nodeType":"MemberAccess","src":"22018:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22010:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":78070,"name":"uint128","nodeType":"ElementaryTypeName","src":"22010:7:161","typeDescriptions":{}}},"id":78074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22010:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"21993:35:161"},{"expression":{"arguments":[{"id":78077,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78069,"src":"22056:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78076,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77587,"src":"22039:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22039:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78079,"nodeType":"ExpressionStatement","src":"22039:24:161"},{"assignments":[78081],"declarations":[{"constant":false,"id":78081,"mutability":"mutable","name":"_nonce","nameLocation":"22082:6:161","nodeType":"VariableDeclaration","scope":78103,"src":"22074:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78080,"name":"uint256","nodeType":"ElementaryTypeName","src":"22074:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78083,"initialValue":{"id":78082,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77356,"src":"22091:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22074:22:161"},{"assignments":[78086],"declarations":[{"constant":false,"id":78086,"mutability":"mutable","name":"id","nameLocation":"22265:2:161","nodeType":"VariableDeclaration","scope":78103,"src":"22257:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22257: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":78087,"nodeType":"VariableDeclarationStatement","src":"22257:10:161"},{"AST":{"nativeSrc":"22302:129:161","nodeType":"YulBlock","src":"22302:129:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22323:4:161","nodeType":"YulLiteral","src":"22323:4:161","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"22333:2:161","nodeType":"YulLiteral","src":"22333:2:161","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"22337:7:161","nodeType":"YulIdentifier","src":"22337:7:161"},"nativeSrc":"22337:9:161","nodeType":"YulFunctionCall","src":"22337:9:161"}],"functionName":{"name":"shl","nativeSrc":"22329:3:161","nodeType":"YulIdentifier","src":"22329:3:161"},"nativeSrc":"22329:18:161","nodeType":"YulFunctionCall","src":"22329:18:161"}],"functionName":{"name":"mstore","nativeSrc":"22316:6:161","nodeType":"YulIdentifier","src":"22316:6:161"},"nativeSrc":"22316:32:161","nodeType":"YulFunctionCall","src":"22316:32:161"},"nativeSrc":"22316:32:161","nodeType":"YulExpressionStatement","src":"22316:32:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22368:4:161","nodeType":"YulLiteral","src":"22368:4:161","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"22374:6:161","nodeType":"YulIdentifier","src":"22374:6:161"}],"functionName":{"name":"mstore","nativeSrc":"22361:6:161","nodeType":"YulIdentifier","src":"22361:6:161"},"nativeSrc":"22361:20:161","nodeType":"YulFunctionCall","src":"22361:20:161"},"nativeSrc":"22361:20:161","nodeType":"YulExpressionStatement","src":"22361:20:161"},{"nativeSrc":"22394:27:161","nodeType":"YulAssignment","src":"22394:27:161","value":{"arguments":[{"kind":"number","nativeSrc":"22410:4:161","nodeType":"YulLiteral","src":"22410:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22416:4:161","nodeType":"YulLiteral","src":"22416:4:161","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"22400:9:161","nodeType":"YulIdentifier","src":"22400:9:161"},"nativeSrc":"22400:21:161","nodeType":"YulFunctionCall","src":"22400:21:161"},"variableNames":[{"name":"id","nativeSrc":"22394:2:161","nodeType":"YulIdentifier","src":"22394:2:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78081,"isOffset":false,"isSlot":false,"src":"22374:6:161","valueSize":1},{"declaration":78086,"isOffset":false,"isSlot":false,"src":"22394:2:161","valueSize":1}],"flags":["memory-safe"],"id":78088,"nodeType":"InlineAssembly","src":"22277:154:161"},{"expression":{"id":78090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22440:7:161","subExpression":{"id":78089,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77356,"src":"22440:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78091,"nodeType":"ExpressionStatement","src":"22440:7:161"},{"eventCall":{"arguments":[{"id":78093,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78086,"src":"22488:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78094,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22492:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22496:6:161","memberName":"sender","nodeType":"MemberAccess","src":"22492:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78096,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"22504:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":78097,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78069,"src":"22514:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":78098,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78059,"src":"22522: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":78092,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"22463: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":78099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22463:70:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78100,"nodeType":"EmitStatement","src":"22458:75:161"},{"expression":{"id":78101,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78086,"src":"22551:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78067,"id":78102,"nodeType":"Return","src":"22544:9:161"}]},"documentation":{"id":78055,"nodeType":"StructuredDocumentation","src":"21431: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":78062,"kind":"modifierInvocation","modifierName":{"id":78061,"name":"onlyIfActive","nameLocations":["21888:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77442,"src":"21888:12:161"},"nodeType":"ModifierInvocation","src":"21888:12:161"},{"id":78064,"kind":"modifierInvocation","modifierName":{"id":78063,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["21909:33:161"],"nodeType":"IdentifierPath","referencedDeclaration":77416,"src":"21909:33:161"},"nodeType":"ModifierInvocation","src":"21909:33:161"}],"name":"_sendMessage","nameLocation":"21809:12:161","parameters":{"id":78060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78057,"mutability":"mutable","name":"_payload","nameLocation":"21837:8:161","nodeType":"VariableDeclaration","scope":78104,"src":"21822:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78056,"name":"bytes","nodeType":"ElementaryTypeName","src":"21822:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":78059,"mutability":"mutable","name":"_callReply","nameLocation":"21852:10:161","nodeType":"VariableDeclaration","scope":78104,"src":"21847:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78058,"name":"bool","nodeType":"ElementaryTypeName","src":"21847:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21821:42:161"},"returnParameters":{"id":78067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78066,"mutability":"mutable","name":"messageId","nameLocation":"21968:9:161","nodeType":"VariableDeclaration","scope":78104,"src":"21960:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21960:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21959:19:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78137,"nodeType":"FunctionDefinition","src":"22889:470:161","nodes":[],"body":{"id":78136,"nodeType":"Block","src":"23038:321:161","nodes":[],"statements":[{"assignments":[78115],"declarations":[{"constant":false,"id":78115,"mutability":"mutable","name":"balance","nameLocation":"23056:7:161","nodeType":"VariableDeclaration","scope":78136,"src":"23048:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78114,"name":"uint256","nodeType":"ElementaryTypeName","src":"23048:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78121,"initialValue":{"expression":{"arguments":[{"id":78118,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23074:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78807","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78807","typeString":"contract Mirror"}],"id":78117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23066:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78116,"name":"address","nodeType":"ElementaryTypeName","src":"23066:7:161","typeDescriptions":{}}},"id":78119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23066:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23080:7:161","memberName":"balance","nodeType":"MemberAccess","src":"23066:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23048:39:161"},{"assignments":[78123],"declarations":[{"constant":false,"id":78123,"mutability":"mutable","name":"balance128","nameLocation":"23255:10:161","nodeType":"VariableDeclaration","scope":78136,"src":"23247:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78122,"name":"uint128","nodeType":"ElementaryTypeName","src":"23247:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":78128,"initialValue":{"arguments":[{"id":78126,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78115,"src":"23276:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23268:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":78124,"name":"uint128","nodeType":"ElementaryTypeName","src":"23268:7:161","typeDescriptions":{}}},"id":78127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23268:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"23247:37:161"},{"expression":{"components":[{"id":78129,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78123,"src":"23302:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":78131,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77362,"src":"23329:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78132,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78123,"src":"23340:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78130,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78745,"src":"23314:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23314:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78134,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23301:51:161","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":78113,"id":78135,"nodeType":"Return","src":"23294:58:161"}]},"documentation":{"id":78105,"nodeType":"StructuredDocumentation","src":"22566: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":78108,"kind":"modifierInvocation","modifierName":{"id":78107,"name":"onlyIfExited","nameLocations":["22956:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77462,"src":"22956:12:161"},"nodeType":"ModifierInvocation","src":"22956:12:161"}],"name":"_transferLockedValueToInheritor","nameLocation":"22898:31:161","parameters":{"id":78106,"nodeType":"ParameterList","parameters":[],"src":"22929:2:161"},"returnParameters":{"id":78113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78110,"mutability":"mutable","name":"valueTransferred","nameLocation":"22994:16:161","nodeType":"VariableDeclaration","scope":78137,"src":"22986:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78109,"name":"uint128","nodeType":"ElementaryTypeName","src":"22986:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":78112,"mutability":"mutable","name":"transferSuccess","nameLocation":"23017:15:161","nodeType":"VariableDeclaration","scope":78137,"src":"23012:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78111,"name":"bool","nodeType":"ElementaryTypeName","src":"23012:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22985:48:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78235,"nodeType":"FunctionDefinition","src":"23927:1232:161","nodes":[],"body":{"id":78234,"nodeType":"Block","src":"24011:1148:161","nodes":[],"statements":[{"assignments":[78148],"declarations":[{"constant":false,"id":78148,"mutability":"mutable","name":"messagesLen","nameLocation":"24029:11:161","nodeType":"VariableDeclaration","scope":78234,"src":"24021:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78147,"name":"uint256","nodeType":"ElementaryTypeName","src":"24021:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78151,"initialValue":{"expression":{"id":78149,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"24043:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83446_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":78150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24053:6:161","memberName":"length","nodeType":"MemberAccess","src":"24043:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24021:38:161"},{"assignments":[78153],"declarations":[{"constant":false,"id":78153,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"24077:18:161","nodeType":"VariableDeclaration","scope":78234,"src":"24069:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78152,"name":"uint256","nodeType":"ElementaryTypeName","src":"24069:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78157,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78154,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78148,"src":"24098:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24112:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24098:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24069:45:161"},{"assignments":[78159],"declarations":[{"constant":false,"id":78159,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"24132:20:161","nodeType":"VariableDeclaration","scope":78234,"src":"24124:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78158,"name":"uint256","nodeType":"ElementaryTypeName","src":"24124:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78164,"initialValue":{"arguments":[{"id":78162,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78153,"src":"24171:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78160,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"24155:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24162:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"24155:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24155:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24124:66:161"},{"assignments":[78166],"declarations":[{"constant":false,"id":78166,"mutability":"mutable","name":"offset","nameLocation":"24208:6:161","nodeType":"VariableDeclaration","scope":78234,"src":"24200:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78165,"name":"uint256","nodeType":"ElementaryTypeName","src":"24200:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78168,"initialValue":{"hexValue":"30","id":78167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24217:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24200:18:161"},{"body":{"id":78225,"nodeType":"Block","src":"24271:785:161","statements":[{"assignments":[78183],"declarations":[{"constant":false,"id":78183,"mutability":"mutable","name":"message","nameLocation":"24307:7:161","nodeType":"VariableDeclaration","scope":78225,"src":"24285:29:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78182,"nodeType":"UserDefinedTypeName","pathNode":{"id":78181,"name":"Gear.Message","nameLocations":["24285:4:161","24290:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83446,"src":"24285:12:161"},"referencedDeclaration":83446,"src":"24285:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":78187,"initialValue":{"baseExpression":{"id":78184,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"24317:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83446_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":78186,"indexExpression":{"id":78185,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78170,"src":"24327:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24317:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"24285:44:161"},{"assignments":[78190],"declarations":[{"constant":false,"id":78190,"mutability":"mutable","name":"messageHash","nameLocation":"24435:11:161","nodeType":"VariableDeclaration","scope":78225,"src":"24427:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24427:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":78195,"initialValue":{"arguments":[{"id":78193,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78183,"src":"24466:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":78191,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"24449:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":78192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24454:11:161","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":83727,"src":"24449:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$83446_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":78194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24449:25:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24427:47:161"},{"documentation":" @dev Store the message hash in memory at messagesHashes[offset : offset+32].","expression":{"arguments":[{"id":78199,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"24638:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78200,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78166,"src":"24660:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78201,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78190,"src":"24668: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":78196,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"24612:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24619:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"24612:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24612:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78203,"nodeType":"ExpressionStatement","src":"24612:68:161"},{"id":78208,"nodeType":"UncheckedBlock","src":"24694:55:161","statements":[{"expression":{"id":78206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78204,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78166,"src":"24722:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24732:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24722:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78207,"nodeType":"ExpressionStatement","src":"24722:12:161"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78209,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78183,"src":"24888:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24896:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83442,"src":"24888:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24909:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83478,"src":"24888:23:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24915:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24888:28:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Send the message based on its type (`Gear.Message` or `Gear.Reply`).","falseBody":{"id":78223,"nodeType":"Block","src":"24987:59:161","statements":[{"expression":{"arguments":[{"id":78220,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78183,"src":"25023:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78219,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78630,"src":"25005:17:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83446_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25005:26:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78222,"nodeType":"ExpressionStatement","src":"25005:26:161"}]},"id":78224,"nodeType":"IfStatement","src":"24884:162:161","trueBody":{"id":78218,"nodeType":"Block","src":"24918:63:161","statements":[{"expression":{"arguments":[{"id":78215,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78183,"src":"24958:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78214,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78289,"src":"24936:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83446_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24936:30:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78217,"nodeType":"ExpressionStatement","src":"24936:30:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78173,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78170,"src":"24249:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78174,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78148,"src":"24253:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24249:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78226,"initializationExpression":{"assignments":[78170],"declarations":[{"constant":false,"id":78170,"mutability":"mutable","name":"i","nameLocation":"24242:1:161","nodeType":"VariableDeclaration","scope":78226,"src":"24234:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78169,"name":"uint256","nodeType":"ElementaryTypeName","src":"24234:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78172,"initialValue":{"hexValue":"30","id":78171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24246:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24234:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"24266:3:161","subExpression":{"id":78176,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78170,"src":"24266:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78178,"nodeType":"ExpressionStatement","src":"24266:3:161"},"nodeType":"ForStatement","src":"24229:827:161"},{"expression":{"arguments":[{"id":78229,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"25108:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25130:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78231,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78153,"src":"25133: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":78227,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"25073:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25080:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"25073: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":78232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25073:79:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78146,"id":78233,"nodeType":"Return","src":"25066:86:161"}]},"documentation":{"id":78138,"nodeType":"StructuredDocumentation","src":"23629: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":"23936:13:161","parameters":{"id":78143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78142,"mutability":"mutable","name":"_messages","nameLocation":"23974:9:161","nodeType":"VariableDeclaration","scope":78235,"src":"23950:33:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83446_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":78140,"nodeType":"UserDefinedTypeName","pathNode":{"id":78139,"name":"Gear.Message","nameLocations":["23950:4:161","23955:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83446,"src":"23950:12:161"},"referencedDeclaration":83446,"src":"23950:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_storage_ptr","typeString":"struct Gear.Message"}},"id":78141,"nodeType":"ArrayTypeName","src":"23950:14:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83446_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"23949:35:161"},"returnParameters":{"id":78146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78145,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78235,"src":"24002:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24002:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24001:9:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78289,"nodeType":"FunctionDefinition","src":"25669:1125:161","nodes":[],"body":{"id":78288,"nodeType":"Block","src":"25740:1054:161","nodes":[],"statements":[{"condition":{"id":78245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"25926:37:161","subExpression":{"arguments":[{"id":78243,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"25954:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78242,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78499,"src":"25927:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83446_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":78244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25927: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":78287,"nodeType":"IfStatement","src":"25922:866:161","trueBody":{"id":78286,"nodeType":"Block","src":"25965:823:161","statements":[{"condition":{"expression":{"id":78246,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26233:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26242:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83445,"src":"26233:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78274,"nodeType":"IfStatement","src":"26229:453:161","trueBody":{"id":78273,"nodeType":"Block","src":"26248:434:161","statements":[{"assignments":[78249,null],"declarations":[{"constant":false,"id":78249,"mutability":"mutable","name":"success","nameLocation":"26272:7:161","nodeType":"VariableDeclaration","scope":78273,"src":"26267:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78248,"name":"bool","nodeType":"ElementaryTypeName","src":"26267:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78258,"initialValue":{"arguments":[{"expression":{"id":78255,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26324:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26333:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83435,"src":"26324: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":78250,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26284:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26293:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"26284:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26305:4:161","memberName":"call","nodeType":"MemberAccess","src":"26284: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":78254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26315:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"26284: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":78257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26284:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"26266:75:161"},{"condition":{"id":78260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"26364:8:161","subExpression":{"id":78259,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78249,"src":"26365:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78272,"nodeType":"IfStatement","src":"26360:308:161","trueBody":{"id":78271,"nodeType":"Block","src":"26374:294:161","statements":[{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78262,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26571:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26580:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83429,"src":"26571:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78264,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26584:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26593:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"26584:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78266,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26606:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26615:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"26606: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":78261,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"26553:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26553:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78269,"nodeType":"EmitStatement","src":"26548:73:161"},{"functionReturnParameters":78241,"id":78270,"nodeType":"Return","src":"26643:7:161"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":78276,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26709:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26718:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83429,"src":"26709:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78278,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26722:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26731:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"26722:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78280,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26744:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26753:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83435,"src":"26744:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78282,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78239,"src":"26762:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26771:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"26762: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":78275,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"26701: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":78284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26701:76:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78285,"nodeType":"EmitStatement","src":"26696:81:161"}]}}]},"documentation":{"id":78236,"nodeType":"StructuredDocumentation","src":"25165: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":"25678:21:161","parameters":{"id":78240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78239,"mutability":"mutable","name":"_message","nameLocation":"25722:8:161","nodeType":"VariableDeclaration","scope":78289,"src":"25700:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78238,"nodeType":"UserDefinedTypeName","pathNode":{"id":78237,"name":"Gear.Message","nameLocations":["25700:4:161","25705:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83446,"src":"25700:12:161"},"referencedDeclaration":83446,"src":"25700:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"25699:32:161"},"returnParameters":{"id":78241,"nodeType":"ParameterList","parameters":[],"src":"25740:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78499,"nodeType":"FunctionDefinition","src":"29873:3845:161","nodes":[],"body":{"id":78498,"nodeType":"Block","src":"29977:3741:161","nodes":[],"statements":[{"assignments":[78299],"declarations":[{"constant":false,"id":78299,"mutability":"mutable","name":"payload","nameLocation":"30002:7:161","nodeType":"VariableDeclaration","scope":78498,"src":"29987:22:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78298,"name":"bytes","nodeType":"ElementaryTypeName","src":"29987:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78302,"initialValue":{"expression":{"id":78300,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78293,"src":"30012:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30021:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83435,"src":"30012:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"29987:41:161"},{"condition":{"id":78318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"30043:86:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78303,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78293,"src":"30045:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30054:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"30045:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":78305,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77347,"src":"30069:14:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30045:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78307,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78293,"src":"30087:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30096:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"30087:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30105:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30087:19:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30045:61:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78312,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78299,"src":"30110:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30118:6:161","memberName":"length","nodeType":"MemberAccess","src":"30110:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30127:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30110:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30045:83:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78317,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30044:85:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78322,"nodeType":"IfStatement","src":"30039:129:161","trueBody":{"id":78321,"nodeType":"Block","src":"30131:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30152:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78297,"id":78320,"nodeType":"Return","src":"30145:12:161"}]}},{"assignments":[78324],"declarations":[{"constant":false,"id":78324,"mutability":"mutable","name":"topicsLength","nameLocation":"30186:12:161","nodeType":"VariableDeclaration","scope":78498,"src":"30178:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78323,"name":"uint256","nodeType":"ElementaryTypeName","src":"30178:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78325,"nodeType":"VariableDeclarationStatement","src":"30178:20:161"},{"AST":{"nativeSrc":"30233:224:161","nodeType":"YulBlock","src":"30233:224:161","statements":[{"nativeSrc":"30393:54:161","nodeType":"YulAssignment","src":"30393:54:161","value":{"arguments":[{"kind":"number","nativeSrc":"30413:3:161","nodeType":"YulLiteral","src":"30413:3:161","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"30431:14:161","nodeType":"YulIdentifier","src":"30431:14:161"}],"functionName":{"name":"calldataload","nativeSrc":"30418:12:161","nodeType":"YulIdentifier","src":"30418:12:161"},"nativeSrc":"30418:28:161","nodeType":"YulFunctionCall","src":"30418:28:161"}],"functionName":{"name":"shr","nativeSrc":"30409:3:161","nodeType":"YulIdentifier","src":"30409:3:161"},"nativeSrc":"30409:38:161","nodeType":"YulFunctionCall","src":"30409:38:161"},"variableNames":[{"name":"topicsLength","nativeSrc":"30393:12:161","nodeType":"YulIdentifier","src":"30393:12:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78299,"isOffset":true,"isSlot":false,"src":"30431:14:161","suffix":"offset","valueSize":1},{"declaration":78324,"isOffset":false,"isSlot":false,"src":"30393:12:161","valueSize":1}],"flags":["memory-safe"],"id":78326,"nodeType":"InlineAssembly","src":"30208:249:161"},{"condition":{"id":78335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"30471:41:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78327,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78324,"src":"30473:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":78328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30489:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30473:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78330,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78324,"src":"30494:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":78331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30510:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"30494:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30473:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30472:40:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78339,"nodeType":"IfStatement","src":"30467:84:161","trueBody":{"id":78338,"nodeType":"Block","src":"30514:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30535:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78297,"id":78337,"nodeType":"Return","src":"30528:12:161"}]}},{"assignments":[78341],"declarations":[{"constant":false,"id":78341,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"30569:19:161","nodeType":"VariableDeclaration","scope":78498,"src":"30561:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78340,"name":"uint256","nodeType":"ElementaryTypeName","src":"30561:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78342,"nodeType":"VariableDeclarationStatement","src":"30561:27:161"},{"id":78351,"nodeType":"UncheckedBlock","src":"30598:78:161","statements":[{"expression":{"id":78349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78343,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78341,"src":"30622:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":78344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30644: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":78347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78345,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78324,"src":"30648:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30663:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"30648:17:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30644:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30622:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78350,"nodeType":"ExpressionStatement","src":"30622:43:161"}]},{"condition":{"id":78357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"30690:40:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78352,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78299,"src":"30692:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30700:6:161","memberName":"length","nodeType":"MemberAccess","src":"30692:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":78354,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78341,"src":"30710:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30692:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78356,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30691:39:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78361,"nodeType":"IfStatement","src":"30686:83:161","trueBody":{"id":78360,"nodeType":"Block","src":"30732:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30753:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78297,"id":78359,"nodeType":"Return","src":"30746:12:161"}]}},{"assignments":[78364],"declarations":[{"constant":false,"id":78364,"mutability":"mutable","name":"topic1","nameLocation":"30872:6:161","nodeType":"VariableDeclaration","scope":78498,"src":"30864:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30864:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`","id":78365,"nodeType":"VariableDeclarationStatement","src":"30864:14:161"},{"AST":{"nativeSrc":"30913:70:161","nodeType":"YulBlock","src":"30913:70:161","statements":[{"nativeSrc":"30927:46:161","nodeType":"YulAssignment","src":"30927:46:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30954:14:161","nodeType":"YulIdentifier","src":"30954:14:161"},{"kind":"number","nativeSrc":"30970:1:161","nodeType":"YulLiteral","src":"30970:1:161","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"30950:3:161","nodeType":"YulIdentifier","src":"30950:3:161"},"nativeSrc":"30950:22:161","nodeType":"YulFunctionCall","src":"30950:22:161"}],"functionName":{"name":"calldataload","nativeSrc":"30937:12:161","nodeType":"YulIdentifier","src":"30937:12:161"},"nativeSrc":"30937:36:161","nodeType":"YulFunctionCall","src":"30937:36:161"},"variableNames":[{"name":"topic1","nativeSrc":"30927:6:161","nodeType":"YulIdentifier","src":"30927:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78299,"isOffset":true,"isSlot":false,"src":"30954:14:161","suffix":"offset","valueSize":1},{"declaration":78364,"isOffset":false,"isSlot":false,"src":"30927:6:161","valueSize":1}],"flags":["memory-safe"],"id":78366,"nodeType":"InlineAssembly","src":"30888:95:161"},{"condition":{"id":78437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31539:763:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78367,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"31554:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78368,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"31564:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31577:8:161","memberName":"selector","nodeType":"MemberAccess","src":"31564:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"31554:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78371,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"31601:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78372,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"31611: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":78373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31636:8:161","memberName":"selector","nodeType":"MemberAccess","src":"31611:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"31601:43:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:90:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78376,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"31660:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78377,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"31670: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":78378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31693:8:161","memberName":"selector","nodeType":"MemberAccess","src":"31670:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"31660:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:147:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78381,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"31717:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78382,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"31727:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":78383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31750:8:161","memberName":"selector","nodeType":"MemberAccess","src":"31727:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"31717:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:204:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78386,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"31774:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78387,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"31784:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31811:8:161","memberName":"selector","nodeType":"MemberAccess","src":"31784:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"31774:45:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:265:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78391,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"31835:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78392,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"31845:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31877:8:161","memberName":"selector","nodeType":"MemberAccess","src":"31845:40:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"31835:50:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:331:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78396,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"31901:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78397,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"31911: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":78398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31919:8:161","memberName":"selector","nodeType":"MemberAccess","src":"31911:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"31901:26:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:373:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78401,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"31943:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78402,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"31953:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31971:8:161","memberName":"selector","nodeType":"MemberAccess","src":"31953:26:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"31943:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:425:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78406,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"31995:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78407,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"32005: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":78408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32011:8:161","memberName":"selector","nodeType":"MemberAccess","src":"32005:14:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"31995:24:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:465:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78411,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"32035:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78412,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"32045:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32061:8:161","memberName":"selector","nodeType":"MemberAccess","src":"32045:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"32035:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:515:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78416,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"32085:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78417,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"32095:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32108:8:161","memberName":"selector","nodeType":"MemberAccess","src":"32095:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"32085:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:562:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78421,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"32132:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78422,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"32142:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32179:8:161","memberName":"selector","nodeType":"MemberAccess","src":"32142:45:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"32132:55:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:633:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78426,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"32203:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78427,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"32213:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32233:8:161","memberName":"selector","nodeType":"MemberAccess","src":"32213:28:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"32203:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:687:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78431,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78364,"src":"32257:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78432,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"32267:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32284:8:161","memberName":"selector","nodeType":"MemberAccess","src":"32267:25:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"32257:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31554:738:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31540: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":78441,"nodeType":"IfStatement","src":"31535:806:161","trueBody":{"id":78440,"nodeType":"Block","src":"32304:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32325:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78297,"id":78439,"nodeType":"Return","src":"32318:12:161"}]}},{"assignments":[78443],"declarations":[{"constant":false,"id":78443,"mutability":"mutable","name":"size","nameLocation":"32392:4:161","nodeType":"VariableDeclaration","scope":78498,"src":"32384:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78442,"name":"uint256","nodeType":"ElementaryTypeName","src":"32384:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78444,"nodeType":"VariableDeclarationStatement","src":"32384:12:161"},{"id":78452,"nodeType":"UncheckedBlock","src":"32406:78:161","statements":[{"expression":{"id":78450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78445,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78443,"src":"32430:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78446,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78299,"src":"32437:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32445:6:161","memberName":"length","nodeType":"MemberAccess","src":"32437:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78448,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78341,"src":"32454:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32437:36:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32430:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78451,"nodeType":"ExpressionStatement","src":"32430:43:161"}]},{"assignments":[78454],"declarations":[{"constant":false,"id":78454,"mutability":"mutable","name":"memPtr","nameLocation":"32502:6:161","nodeType":"VariableDeclaration","scope":78498,"src":"32494:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78453,"name":"uint256","nodeType":"ElementaryTypeName","src":"32494:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78459,"initialValue":{"arguments":[{"id":78457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78443,"src":"32527:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78455,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"32511:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32518:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"32511:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32511:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32494:38:161"},{"AST":{"nativeSrc":"32567:92:161","nodeType":"YulBlock","src":"32567:92:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"32594:6:161","nodeType":"YulIdentifier","src":"32594:6:161"},{"arguments":[{"name":"payload.offset","nativeSrc":"32606:14:161","nodeType":"YulIdentifier","src":"32606:14:161"},{"name":"topicsLengthInBytes","nativeSrc":"32622:19:161","nodeType":"YulIdentifier","src":"32622:19:161"}],"functionName":{"name":"add","nativeSrc":"32602:3:161","nodeType":"YulIdentifier","src":"32602:3:161"},"nativeSrc":"32602:40:161","nodeType":"YulFunctionCall","src":"32602:40:161"},{"name":"size","nativeSrc":"32644:4:161","nodeType":"YulIdentifier","src":"32644:4:161"}],"functionName":{"name":"calldatacopy","nativeSrc":"32581:12:161","nodeType":"YulIdentifier","src":"32581:12:161"},"nativeSrc":"32581:68:161","nodeType":"YulFunctionCall","src":"32581:68:161"},"nativeSrc":"32581:68:161","nodeType":"YulExpressionStatement","src":"32581:68:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78454,"isOffset":false,"isSlot":false,"src":"32594:6:161","valueSize":1},{"declaration":78299,"isOffset":true,"isSlot":false,"src":"32606:14:161","suffix":"offset","valueSize":1},{"declaration":78443,"isOffset":false,"isSlot":false,"src":"32644:4:161","valueSize":1},{"declaration":78341,"isOffset":false,"isSlot":false,"src":"32622:19:161","valueSize":1}],"flags":["memory-safe"],"id":78460,"nodeType":"InlineAssembly","src":"32542:117:161"},{"assignments":[78463],"declarations":[{"constant":false,"id":78463,"mutability":"mutable","name":"topic2","nameLocation":"32814:6:161","nodeType":"VariableDeclaration","scope":78498,"src":"32806:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32806: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":78464,"nodeType":"VariableDeclarationStatement","src":"32806:14:161"},{"assignments":[78466],"declarations":[{"constant":false,"id":78466,"mutability":"mutable","name":"topic3","nameLocation":"32838:6:161","nodeType":"VariableDeclaration","scope":78498,"src":"32830:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32830:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78467,"nodeType":"VariableDeclarationStatement","src":"32830:14:161"},{"assignments":[78469],"declarations":[{"constant":false,"id":78469,"mutability":"mutable","name":"topic4","nameLocation":"32862:6:161","nodeType":"VariableDeclaration","scope":78498,"src":"32854:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32854:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78470,"nodeType":"VariableDeclarationStatement","src":"32854:14:161"},{"AST":{"nativeSrc":"32903:191:161","nodeType":"YulBlock","src":"32903:191:161","statements":[{"nativeSrc":"32917:47:161","nodeType":"YulAssignment","src":"32917:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"32944:14:161","nodeType":"YulIdentifier","src":"32944:14:161"},{"kind":"number","nativeSrc":"32960:2:161","nodeType":"YulLiteral","src":"32960:2:161","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"32940:3:161","nodeType":"YulIdentifier","src":"32940:3:161"},"nativeSrc":"32940:23:161","nodeType":"YulFunctionCall","src":"32940:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"32927:12:161","nodeType":"YulIdentifier","src":"32927:12:161"},"nativeSrc":"32927:37:161","nodeType":"YulFunctionCall","src":"32927:37:161"},"variableNames":[{"name":"topic2","nativeSrc":"32917:6:161","nodeType":"YulIdentifier","src":"32917:6:161"}]},{"nativeSrc":"32977:47:161","nodeType":"YulAssignment","src":"32977:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"33004:14:161","nodeType":"YulIdentifier","src":"33004:14:161"},{"kind":"number","nativeSrc":"33020:2:161","nodeType":"YulLiteral","src":"33020:2:161","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"33000:3:161","nodeType":"YulIdentifier","src":"33000:3:161"},"nativeSrc":"33000:23:161","nodeType":"YulFunctionCall","src":"33000:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"32987:12:161","nodeType":"YulIdentifier","src":"32987:12:161"},"nativeSrc":"32987:37:161","nodeType":"YulFunctionCall","src":"32987:37:161"},"variableNames":[{"name":"topic3","nativeSrc":"32977:6:161","nodeType":"YulIdentifier","src":"32977:6:161"}]},{"nativeSrc":"33037:47:161","nodeType":"YulAssignment","src":"33037:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"33064:14:161","nodeType":"YulIdentifier","src":"33064:14:161"},{"kind":"number","nativeSrc":"33080:2:161","nodeType":"YulLiteral","src":"33080:2:161","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"33060:3:161","nodeType":"YulIdentifier","src":"33060:3:161"},"nativeSrc":"33060:23:161","nodeType":"YulFunctionCall","src":"33060:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"33047:12:161","nodeType":"YulIdentifier","src":"33047:12:161"},"nativeSrc":"33047:37:161","nodeType":"YulFunctionCall","src":"33047:37:161"},"variableNames":[{"name":"topic4","nativeSrc":"33037:6:161","nodeType":"YulIdentifier","src":"33037:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78299,"isOffset":true,"isSlot":false,"src":"32944:14:161","suffix":"offset","valueSize":1},{"declaration":78299,"isOffset":true,"isSlot":false,"src":"33004:14:161","suffix":"offset","valueSize":1},{"declaration":78299,"isOffset":true,"isSlot":false,"src":"33064:14:161","suffix":"offset","valueSize":1},{"declaration":78463,"isOffset":false,"isSlot":false,"src":"32917:6:161","valueSize":1},{"declaration":78466,"isOffset":false,"isSlot":false,"src":"32977:6:161","valueSize":1},{"declaration":78469,"isOffset":false,"isSlot":false,"src":"33037:6:161","valueSize":1}],"flags":["memory-safe"],"id":78471,"nodeType":"InlineAssembly","src":"32878:216:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78472,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78324,"src":"33108:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":78473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33124:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33108:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78477,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78324,"src":"33244:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":78478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33260:1:161","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"33244:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78482,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78324,"src":"33388:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":78483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33404:1:161","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"33388:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78487,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78324,"src":"33540:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":78488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33556:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"33540:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78492,"nodeType":"IfStatement","src":"33536:154:161","trueBody":{"id":78491,"nodeType":"Block","src":"33559:131:161","statements":[{"AST":{"nativeSrc":"33598:82:161","nodeType":"YulBlock","src":"33598:82:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"33621:6:161","nodeType":"YulIdentifier","src":"33621:6:161"},{"name":"size","nativeSrc":"33629:4:161","nodeType":"YulIdentifier","src":"33629:4:161"},{"name":"topic1","nativeSrc":"33635:6:161","nodeType":"YulIdentifier","src":"33635:6:161"},{"name":"topic2","nativeSrc":"33643:6:161","nodeType":"YulIdentifier","src":"33643:6:161"},{"name":"topic3","nativeSrc":"33651:6:161","nodeType":"YulIdentifier","src":"33651:6:161"},{"name":"topic4","nativeSrc":"33659:6:161","nodeType":"YulIdentifier","src":"33659:6:161"}],"functionName":{"name":"log4","nativeSrc":"33616:4:161","nodeType":"YulIdentifier","src":"33616:4:161"},"nativeSrc":"33616:50:161","nodeType":"YulFunctionCall","src":"33616:50:161"},"nativeSrc":"33616:50:161","nodeType":"YulExpressionStatement","src":"33616:50:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78454,"isOffset":false,"isSlot":false,"src":"33621:6:161","valueSize":1},{"declaration":78443,"isOffset":false,"isSlot":false,"src":"33629:4:161","valueSize":1},{"declaration":78364,"isOffset":false,"isSlot":false,"src":"33635:6:161","valueSize":1},{"declaration":78463,"isOffset":false,"isSlot":false,"src":"33643:6:161","valueSize":1},{"declaration":78466,"isOffset":false,"isSlot":false,"src":"33651:6:161","valueSize":1},{"declaration":78469,"isOffset":false,"isSlot":false,"src":"33659:6:161","valueSize":1}],"flags":["memory-safe"],"id":78490,"nodeType":"InlineAssembly","src":"33573:107:161"}]}},"id":78493,"nodeType":"IfStatement","src":"33384:306:161","trueBody":{"id":78486,"nodeType":"Block","src":"33407:123:161","statements":[{"AST":{"nativeSrc":"33446:74:161","nodeType":"YulBlock","src":"33446:74:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"33469:6:161","nodeType":"YulIdentifier","src":"33469:6:161"},{"name":"size","nativeSrc":"33477:4:161","nodeType":"YulIdentifier","src":"33477:4:161"},{"name":"topic1","nativeSrc":"33483:6:161","nodeType":"YulIdentifier","src":"33483:6:161"},{"name":"topic2","nativeSrc":"33491:6:161","nodeType":"YulIdentifier","src":"33491:6:161"},{"name":"topic3","nativeSrc":"33499:6:161","nodeType":"YulIdentifier","src":"33499:6:161"}],"functionName":{"name":"log3","nativeSrc":"33464:4:161","nodeType":"YulIdentifier","src":"33464:4:161"},"nativeSrc":"33464:42:161","nodeType":"YulFunctionCall","src":"33464:42:161"},"nativeSrc":"33464:42:161","nodeType":"YulExpressionStatement","src":"33464:42:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78454,"isOffset":false,"isSlot":false,"src":"33469:6:161","valueSize":1},{"declaration":78443,"isOffset":false,"isSlot":false,"src":"33477:4:161","valueSize":1},{"declaration":78364,"isOffset":false,"isSlot":false,"src":"33483:6:161","valueSize":1},{"declaration":78463,"isOffset":false,"isSlot":false,"src":"33491:6:161","valueSize":1},{"declaration":78466,"isOffset":false,"isSlot":false,"src":"33499:6:161","valueSize":1}],"flags":["memory-safe"],"id":78485,"nodeType":"InlineAssembly","src":"33421:99:161"}]}},"id":78494,"nodeType":"IfStatement","src":"33240:450:161","trueBody":{"id":78481,"nodeType":"Block","src":"33263:115:161","statements":[{"AST":{"nativeSrc":"33302:66:161","nodeType":"YulBlock","src":"33302:66:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"33325:6:161","nodeType":"YulIdentifier","src":"33325:6:161"},{"name":"size","nativeSrc":"33333:4:161","nodeType":"YulIdentifier","src":"33333:4:161"},{"name":"topic1","nativeSrc":"33339:6:161","nodeType":"YulIdentifier","src":"33339:6:161"},{"name":"topic2","nativeSrc":"33347:6:161","nodeType":"YulIdentifier","src":"33347:6:161"}],"functionName":{"name":"log2","nativeSrc":"33320:4:161","nodeType":"YulIdentifier","src":"33320:4:161"},"nativeSrc":"33320:34:161","nodeType":"YulFunctionCall","src":"33320:34:161"},"nativeSrc":"33320:34:161","nodeType":"YulExpressionStatement","src":"33320:34:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78454,"isOffset":false,"isSlot":false,"src":"33325:6:161","valueSize":1},{"declaration":78443,"isOffset":false,"isSlot":false,"src":"33333:4:161","valueSize":1},{"declaration":78364,"isOffset":false,"isSlot":false,"src":"33339:6:161","valueSize":1},{"declaration":78463,"isOffset":false,"isSlot":false,"src":"33347:6:161","valueSize":1}],"flags":["memory-safe"],"id":78480,"nodeType":"InlineAssembly","src":"33277:91:161"}]}},"id":78495,"nodeType":"IfStatement","src":"33104:586:161","trueBody":{"id":78476,"nodeType":"Block","src":"33127:107:161","statements":[{"AST":{"nativeSrc":"33166:58:161","nodeType":"YulBlock","src":"33166:58:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"33189:6:161","nodeType":"YulIdentifier","src":"33189:6:161"},{"name":"size","nativeSrc":"33197:4:161","nodeType":"YulIdentifier","src":"33197:4:161"},{"name":"topic1","nativeSrc":"33203:6:161","nodeType":"YulIdentifier","src":"33203:6:161"}],"functionName":{"name":"log1","nativeSrc":"33184:4:161","nodeType":"YulIdentifier","src":"33184:4:161"},"nativeSrc":"33184:26:161","nodeType":"YulFunctionCall","src":"33184:26:161"},"nativeSrc":"33184:26:161","nodeType":"YulExpressionStatement","src":"33184:26:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78454,"isOffset":false,"isSlot":false,"src":"33189:6:161","valueSize":1},{"declaration":78443,"isOffset":false,"isSlot":false,"src":"33197:4:161","valueSize":1},{"declaration":78364,"isOffset":false,"isSlot":false,"src":"33203:6:161","valueSize":1}],"flags":["memory-safe"],"id":78475,"nodeType":"InlineAssembly","src":"33141:83:161"}]}},{"expression":{"hexValue":"74727565","id":78496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33707:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78297,"id":78497,"nodeType":"Return","src":"33700:11:161"}]},"documentation":{"id":78290,"nodeType":"StructuredDocumentation","src":"26800: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":"29882:26:161","parameters":{"id":78294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78293,"mutability":"mutable","name":"_message","nameLocation":"29931:8:161","nodeType":"VariableDeclaration","scope":78499,"src":"29909:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78292,"nodeType":"UserDefinedTypeName","pathNode":{"id":78291,"name":"Gear.Message","nameLocations":["29909:4:161","29914:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83446,"src":"29909:12:161"},"referencedDeclaration":83446,"src":"29909:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"29908:32:161"},"returnParameters":{"id":78297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78296,"mutability":"mutable","name":"isSailsEvent","nameLocation":"29963:12:161","nodeType":"VariableDeclaration","scope":78499,"src":"29958:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78295,"name":"bool","nodeType":"ElementaryTypeName","src":"29958:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29957:19:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78630,"nodeType":"FunctionDefinition","src":"39685:1645:161","nodes":[],"body":{"id":78629,"nodeType":"Block","src":"39752:1578:161","nodes":[],"statements":[{"condition":{"expression":{"id":78506,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"39766:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39775:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83445,"src":"39766:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78627,"nodeType":"Block","src":"40981:343:161","statements":[{"assignments":[78595],"declarations":[{"constant":false,"id":78595,"mutability":"mutable","name":"transferSuccess","nameLocation":"41000:15:161","nodeType":"VariableDeclaration","scope":78627,"src":"40995:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78594,"name":"bool","nodeType":"ElementaryTypeName","src":"40995:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78602,"initialValue":{"arguments":[{"expression":{"id":78597,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"41033:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41042:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"41033:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78599,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"41055:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41064:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"41055:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78596,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78745,"src":"41018:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41018:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"40995:75:161"},{"condition":{"id":78604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"41088:16:161","subExpression":{"id":78603,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78595,"src":"41089:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78613,"nodeType":"IfStatement","src":"41084:117:161","trueBody":{"id":78612,"nodeType":"Block","src":"41106:95:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78606,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"41149:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41158:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"41149:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78608,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"41171:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41180:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"41171:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78605,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"41129:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41129:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78611,"nodeType":"EmitStatement","src":"41124:62:161"}]}},{"eventCall":{"arguments":[{"expression":{"id":78615,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"41226:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41235:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83435,"src":"41226:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78617,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"41244:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41253:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"41244:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78619,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"41260:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41269:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83442,"src":"41260:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41282:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83478,"src":"41260:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78622,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"41286:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41295:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83442,"src":"41286:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41308:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83481,"src":"41286: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":78614,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"41220: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":78625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41220:93:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78626,"nodeType":"EmitStatement","src":"41215:98:161"}]},"id":78628,"nodeType":"IfStatement","src":"39762:1562:161","trueBody":{"id":78593,"nodeType":"Block","src":"39781:1194:161","statements":[{"assignments":[78509],"declarations":[{"constant":false,"id":78509,"mutability":"mutable","name":"isSuccessReply","nameLocation":"39800:14:161","nodeType":"VariableDeclaration","scope":78593,"src":"39795:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78508,"name":"bool","nodeType":"ElementaryTypeName","src":"39795:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78517,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":78516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":78510,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"39817:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39826:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83442,"src":"39817:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39839:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83481,"src":"39817:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":78514,"indexExpression":{"hexValue":"30","id":78513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39844: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":"39817:29:161","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39850:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"39817:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"39795:56:161"},{"assignments":[78519],"declarations":[{"constant":false,"id":78519,"mutability":"mutable","name":"payload","nameLocation":"39879:7:161","nodeType":"VariableDeclaration","scope":78593,"src":"39866:20:161","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78518,"name":"bytes","nodeType":"ElementaryTypeName","src":"39866:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78520,"nodeType":"VariableDeclarationStatement","src":"39866:20:161"},{"condition":{"id":78521,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78509,"src":"39905:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78544,"nodeType":"Block","src":"39986:348:161","statements":[{"expression":{"id":78542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78528,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78519,"src":"40156:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":78531,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"40210:10:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73742_$","typeString":"type(contract ICallbacks)"}},"id":78532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40221:12:161","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":73741,"src":"40210: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":78533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40234:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40210:32:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":78534,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40244:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40253:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83429,"src":"40244:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78536,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40257:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40266:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83435,"src":"40257:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":78538,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40275:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40284:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83442,"src":"40275:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40297:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83481,"src":"40275: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":78529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40166:3:161","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40170:18:161","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"40166:22:161","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":78541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40166:153:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"40156:163:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78543,"nodeType":"ExpressionStatement","src":"40156:163:161"}]},"id":78545,"nodeType":"IfStatement","src":"39901:433:161","trueBody":{"id":78527,"nodeType":"Block","src":"39921:59:161","statements":[{"expression":{"id":78525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78522,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78519,"src":"39939:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78523,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"39949:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39958:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83435,"src":"39949:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"39939:26:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78526,"nodeType":"ExpressionStatement","src":"39939:26:161"}]}},{"assignments":[78547,null],"declarations":[{"constant":false,"id":78547,"mutability":"mutable","name":"success","nameLocation":"40354:7:161","nodeType":"VariableDeclaration","scope":78593,"src":"40349:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78546,"name":"bool","nodeType":"ElementaryTypeName","src":"40349:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78557,"initialValue":{"arguments":[{"id":78555,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78519,"src":"40429: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":78548,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40366:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40375:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"40366:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40387:4:161","memberName":"call","nodeType":"MemberAccess","src":"40366: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":78554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40397:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":78552,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40413:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40422:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"40413:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"40366: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":78556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40366:71:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"40348:89:161"},{"condition":{"id":78559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"40456:8:161","subExpression":{"id":78558,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78547,"src":"40457:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78592,"nodeType":"IfStatement","src":"40452:513:161","trueBody":{"id":78591,"nodeType":"Block","src":"40466:499:161","statements":[{"assignments":[78561],"declarations":[{"constant":false,"id":78561,"mutability":"mutable","name":"transferSuccess","nameLocation":"40489:15:161","nodeType":"VariableDeclaration","scope":78591,"src":"40484:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78560,"name":"bool","nodeType":"ElementaryTypeName","src":"40484:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78568,"initialValue":{"arguments":[{"expression":{"id":78563,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40522:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40531:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"40522:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78565,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40544:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40553:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"40544:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78562,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78745,"src":"40507:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40507:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"40484:75:161"},{"condition":{"id":78570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"40581:16:161","subExpression":{"id":78569,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78561,"src":"40582:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78579,"nodeType":"IfStatement","src":"40577:125:161","trueBody":{"id":78578,"nodeType":"Block","src":"40599:103:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78572,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40646:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40655:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83432,"src":"40646:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78574,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40668:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40677:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"40668:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78571,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"40626:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40626:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78577,"nodeType":"EmitStatement","src":"40621:62:161"}]}},{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78581,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40881:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40890:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83438,"src":"40881:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78583,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40897:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40906:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83442,"src":"40897:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40919:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83478,"src":"40897:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78586,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78503,"src":"40923:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40932:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83442,"src":"40923:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83482_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40945:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83481,"src":"40923: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":78580,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"40865:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40865:85:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78590,"nodeType":"EmitStatement","src":"40860:90:161"}]}}]}}]},"documentation":{"id":78500,"nodeType":"StructuredDocumentation","src":"33724: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":"39694:17:161","parameters":{"id":78504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78503,"mutability":"mutable","name":"_message","nameLocation":"39734:8:161","nodeType":"VariableDeclaration","scope":78630,"src":"39712:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78502,"nodeType":"UserDefinedTypeName","pathNode":{"id":78501,"name":"Gear.Message","nameLocations":["39712:4:161","39717:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83446,"src":"39712:12:161"},"referencedDeclaration":83446,"src":"39712:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83446_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"39711:32:161"},"returnParameters":{"id":78505,"nodeType":"ParameterList","parameters":[],"src":"39752:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78645,"nodeType":"FunctionDefinition","src":"41706:159:161","nodes":[],"body":{"id":78644,"nodeType":"Block","src":"41788:77:161","nodes":[],"statements":[{"expression":{"id":78642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":78638,"name":"_valueClaimsMerkleRoots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77372,"src":"41798:23:161","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":78640,"indexExpression":{"id":78639,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78633,"src":"41822:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41798:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78641,"name":"_valueClaimsMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78635,"src":"41836:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41798:60:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78643,"nodeType":"ExpressionStatement","src":"41798:60:161"}]},"documentation":{"id":78631,"nodeType":"StructuredDocumentation","src":"41435:266:161","text":" @dev Internal function to pass claim values from messages in mailbox as merkle root.\n @param _stateHash The state hash for which the values are claimed.\n @param _valueClaimsMerkleRoot The merkle root of value claims for the state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"41715:12:161","parameters":{"id":78636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78633,"mutability":"mutable","name":"_stateHash","nameLocation":"41736:10:161","nodeType":"VariableDeclaration","scope":78645,"src":"41728:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41728:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":78635,"mutability":"mutable","name":"_valueClaimsMerkleRoot","nameLocation":"41756:22:161","nodeType":"VariableDeclaration","scope":78645,"src":"41748:30:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41748:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41727:52:161"},"returnParameters":{"id":78637,"nodeType":"ParameterList","parameters":[],"src":"41788:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78678,"nodeType":"FunctionDefinition","src":"42131:586:161","nodes":[],"body":{"id":78677,"nodeType":"Block","src":"42195:522:161","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":78655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78653,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77359,"src":"42260:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42269:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"42260:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78656,"nodeType":"ExpressionStatement","src":"42260:13:161"},{"expression":{"id":78659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78657,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77362,"src":"42283:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78658,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78648,"src":"42295:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"42283:22:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78660,"nodeType":"ExpressionStatement","src":"42283:22:161"},{"assignments":[78662,78664],"declarations":[{"constant":false,"id":78662,"mutability":"mutable","name":"value","nameLocation":"42414:5:161","nodeType":"VariableDeclaration","scope":78677,"src":"42406:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78661,"name":"uint128","nodeType":"ElementaryTypeName","src":"42406:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":78664,"mutability":"mutable","name":"success","nameLocation":"42426:7:161","nodeType":"VariableDeclaration","scope":78677,"src":"42421:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78663,"name":"bool","nodeType":"ElementaryTypeName","src":"42421:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":" @dev Transfer all available balance to the inheritor.","id":78667,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78665,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"42437:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":78666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42437:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"42405:65:161"},{"condition":{"id":78669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42484:8:161","subExpression":{"id":78668,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78664,"src":"42485:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78676,"nodeType":"IfStatement","src":"42480:231:161","trueBody":{"id":78675,"nodeType":"Block","src":"42494:217:161","statements":[{"documentation":" @dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":78671,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78648,"src":"42682:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78672,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78662,"src":"42694:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78670,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"42645:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42645:55:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78674,"nodeType":"EmitStatement","src":"42640:60:161"}]}}]},"documentation":{"id":78646,"nodeType":"StructuredDocumentation","src":"41928: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":78651,"kind":"modifierInvocation","modifierName":{"id":78650,"name":"onlyIfActive","nameLocations":["42182:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77442,"src":"42182:12:161"},"nodeType":"ModifierInvocation","src":"42182:12:161"}],"name":"_setInheritor","nameLocation":"42140:13:161","parameters":{"id":78649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78648,"mutability":"mutable","name":"_inheritor","nameLocation":"42162:10:161","nodeType":"VariableDeclaration","scope":78678,"src":"42154:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78647,"name":"address","nodeType":"ElementaryTypeName","src":"42154:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42153:20:161"},"returnParameters":{"id":78652,"nodeType":"ParameterList","parameters":[],"src":"42195:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78693,"nodeType":"FunctionDefinition","src":"42820:281:161","nodes":[],"body":{"id":78692,"nodeType":"Block","src":"42874:227:161","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":78686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78684,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77353,"src":"42940:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78685,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78681,"src":"42952:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"42940:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78687,"nodeType":"ExpressionStatement","src":"42940:22:161"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":78689,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77353,"src":"43084:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78688,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"43071:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43071:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78691,"nodeType":"EmitStatement","src":"43066:28:161"}]},"documentation":{"id":78679,"nodeType":"StructuredDocumentation","src":"42723:92:161","text":" @dev Updates the state hash.\n @param _stateHash The new state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"42829:16:161","parameters":{"id":78682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78681,"mutability":"mutable","name":"_stateHash","nameLocation":"42854:10:161","nodeType":"VariableDeclaration","scope":78693,"src":"42846:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42846:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"42845:20:161"},"returnParameters":{"id":78683,"nodeType":"ParameterList","parameters":[],"src":"42874:0:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78715,"nodeType":"FunctionDefinition","src":"43275:182:161","nodes":[],"body":{"id":78714,"nodeType":"Block","src":"43347:110:161","nodes":[],"statements":[{"assignments":[78703],"declarations":[{"constant":false,"id":78703,"mutability":"mutable","name":"wvaraAddr","nameLocation":"43365:9:161","nodeType":"VariableDeclaration","scope":78714,"src":"43357:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78702,"name":"address","nodeType":"ElementaryTypeName","src":"43357:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78709,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78705,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78696,"src":"43385:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78704,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75030,"src":"43377:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$75030_$","typeString":"type(contract IRouter)"}},"id":78706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43377:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$75030","typeString":"contract IRouter"}},"id":78707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43397:11:161","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74724,"src":"43377:31:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43377:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"43357:53:161"},{"expression":{"arguments":[{"id":78711,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78703,"src":"43440:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78710,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"43427:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75046_$","typeString":"type(contract IWrappedVara)"}},"id":78712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43427:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"functionReturnParameters":78701,"id":78713,"nodeType":"Return","src":"43420:30:161"}]},"documentation":{"id":78694,"nodeType":"StructuredDocumentation","src":"43143: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":"43284:6:161","parameters":{"id":78697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78696,"mutability":"mutable","name":"routerAddr","nameLocation":"43299:10:161","nodeType":"VariableDeclaration","scope":78715,"src":"43291:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78695,"name":"address","nodeType":"ElementaryTypeName","src":"43291:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43290:20:161"},"returnParameters":{"id":78701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78715,"src":"43333:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"},"typeName":{"id":78699,"nodeType":"UserDefinedTypeName","pathNode":{"id":78698,"name":"IWrappedVara","nameLocations":["43333:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":75046,"src":"43333:12:161"},"referencedDeclaration":75046,"src":"43333:12:161","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"43332:14:161"},"scope":78807,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78745,"nodeType":"FunctionDefinition","src":"43699:253:161","nodes":[],"body":{"id":78744,"nodeType":"Block","src":"43782:170:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78725,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78720,"src":"43796:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43805:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43796:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78741,"nodeType":"IfStatement","src":"43792:133:161","trueBody":{"id":78740,"nodeType":"Block","src":"43808:117:161","statements":[{"assignments":[78729,null],"declarations":[{"constant":false,"id":78729,"mutability":"mutable","name":"success","nameLocation":"43828:7:161","nodeType":"VariableDeclaration","scope":78740,"src":"43823:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78728,"name":"bool","nodeType":"ElementaryTypeName","src":"43823:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78737,"initialValue":{"arguments":[{"hexValue":"","id":78735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43883: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":78730,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78718,"src":"43840:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43852:4:161","memberName":"call","nodeType":"MemberAccess","src":"43840: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":78734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":78732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43862:5:161","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":78733,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78720,"src":"43876:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"43840: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":78736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43840:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"43822:64:161"},{"expression":{"id":78738,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78729,"src":"43907:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78724,"id":78739,"nodeType":"Return","src":"43900:14:161"}]}},{"expression":{"hexValue":"74727565","id":78742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"43941:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78724,"id":78743,"nodeType":"Return","src":"43934:11:161"}]},"documentation":{"id":78716,"nodeType":"StructuredDocumentation","src":"43463: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":"43708:14:161","parameters":{"id":78721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78718,"mutability":"mutable","name":"destination","nameLocation":"43731:11:161","nodeType":"VariableDeclaration","scope":78745,"src":"43723:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78717,"name":"address","nodeType":"ElementaryTypeName","src":"43723:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78720,"mutability":"mutable","name":"value","nameLocation":"43752:5:161","nodeType":"VariableDeclaration","scope":78745,"src":"43744:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78719,"name":"uint128","nodeType":"ElementaryTypeName","src":"43744:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"43722:36:161"},"returnParameters":{"id":78724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78745,"src":"43776:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78722,"name":"bool","nodeType":"ElementaryTypeName","src":"43776:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43775:6:161"},"scope":78807,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78806,"nodeType":"FunctionDefinition","src":"44253:1106:161","nodes":[],"body":{"id":78805,"nodeType":"Block","src":"44295:1064:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78751,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44309:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44313:5:161","memberName":"value","nodeType":"MemberAccess","src":"44309:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44321:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44309:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78755,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44326:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44330:4:161","memberName":"data","nodeType":"MemberAccess","src":"44326:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44335:6:161","memberName":"length","nodeType":"MemberAccess","src":"44326:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44345:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44326:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"44309:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"44470:8:161","subExpression":{"id":78774,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77368,"src":"44471: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":78780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78776,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44482:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44486:4:161","memberName":"data","nodeType":"MemberAccess","src":"44482:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44491:6:161","memberName":"length","nodeType":"MemberAccess","src":"44482:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":78779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44501:4:161","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"44482:23:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"44470:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78802,"nodeType":"Block","src":"45300:53:161","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78799,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74302,"src":"45321:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45321:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78801,"nodeType":"RevertStatement","src":"45314:28:161"}]},"id":78803,"nodeType":"IfStatement","src":"44466:887:161","trueBody":{"id":78798,"nodeType":"Block","src":"44507:787:161","statements":[{"assignments":[78784],"declarations":[{"constant":false,"id":78784,"mutability":"mutable","name":"callReply","nameLocation":"44970:9:161","nodeType":"VariableDeclaration","scope":78798,"src":"44962:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78783,"name":"uint256","nodeType":"ElementaryTypeName","src":"44962: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":78785,"nodeType":"VariableDeclarationStatement","src":"44962:17:161"},{"AST":{"nativeSrc":"45019:63:161","nodeType":"YulBlock","src":"45019:63:161","statements":[{"nativeSrc":"45037:31:161","nodeType":"YulAssignment","src":"45037:31:161","value":{"arguments":[{"kind":"number","nativeSrc":"45063:4:161","nodeType":"YulLiteral","src":"45063:4:161","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"45050:12:161","nodeType":"YulIdentifier","src":"45050:12:161"},"nativeSrc":"45050:18:161","nodeType":"YulFunctionCall","src":"45050:18:161"},"variableNames":[{"name":"callReply","nativeSrc":"45037:9:161","nodeType":"YulIdentifier","src":"45037:9:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78784,"isOffset":false,"isSlot":false,"src":"45037:9:161","valueSize":1}],"flags":["memory-safe"],"id":78786,"nodeType":"InlineAssembly","src":"44994:88:161"},{"assignments":[78788],"declarations":[{"constant":false,"id":78788,"mutability":"mutable","name":"messageId","nameLocation":"45104:9:161","nodeType":"VariableDeclaration","scope":78798,"src":"45096:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45096:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78796,"initialValue":{"arguments":[{"expression":{"id":78790,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"45129:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45133:4:161","memberName":"data","nodeType":"MemberAccess","src":"45129:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78792,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78784,"src":"45139:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45152:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45139:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":78789,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78104,"src":"45116: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":78795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45116:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"45096:58:161"},{"AST":{"nativeSrc":"45194:90:161","nodeType":"YulBlock","src":"45194:90:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"45219:4:161","nodeType":"YulLiteral","src":"45219:4:161","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"45225:9:161","nodeType":"YulIdentifier","src":"45225:9:161"}],"functionName":{"name":"mstore","nativeSrc":"45212:6:161","nodeType":"YulIdentifier","src":"45212:6:161"},"nativeSrc":"45212:23:161","nodeType":"YulFunctionCall","src":"45212:23:161"},"nativeSrc":"45212:23:161","nodeType":"YulExpressionStatement","src":"45212:23:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45259:4:161","nodeType":"YulLiteral","src":"45259:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"45265:4:161","nodeType":"YulLiteral","src":"45265:4:161","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"45252:6:161","nodeType":"YulIdentifier","src":"45252:6:161"},"nativeSrc":"45252:18:161","nodeType":"YulFunctionCall","src":"45252:18:161"},"nativeSrc":"45252:18:161","nodeType":"YulExpressionStatement","src":"45252:18:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78788,"isOffset":false,"isSlot":false,"src":"45225:9:161","valueSize":1}],"flags":["memory-safe"],"id":78797,"nodeType":"InlineAssembly","src":"45169:115:161"}]}},"id":78804,"nodeType":"IfStatement","src":"44305:1048:161","trueBody":{"id":78773,"nodeType":"Block","src":"44348:112:161","statements":[{"assignments":[78762],"declarations":[{"constant":false,"id":78762,"mutability":"mutable","name":"value","nameLocation":"44370:5:161","nodeType":"VariableDeclaration","scope":78773,"src":"44362:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78761,"name":"uint128","nodeType":"ElementaryTypeName","src":"44362:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":78768,"initialValue":{"arguments":[{"expression":{"id":78765,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44386:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44390:5:161","memberName":"value","nodeType":"MemberAccess","src":"44386:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44378:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":78763,"name":"uint128","nodeType":"ElementaryTypeName","src":"44378:7:161","typeDescriptions":{}}},"id":78767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44378:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"44362:34:161"},{"eventCall":{"arguments":[{"id":78770,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78762,"src":"44443:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78769,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"44416:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44416:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78772,"nodeType":"EmitStatement","src":"44411:38:161"}]}}]},"documentation":{"id":78746,"nodeType":"StructuredDocumentation","src":"43958: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":78749,"kind":"modifierInvocation","modifierName":{"id":78748,"name":"whenNotPaused","nameLocations":["44281:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77503,"src":"44281:13:161"},"nodeType":"ModifierInvocation","src":"44281:13:161"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78747,"nodeType":"ParameterList","parameters":[],"src":"44261:2:161"},"returnParameters":{"id":78750,"nodeType":"ParameterList","parameters":[],"src":"44295:0:161"},"scope":78807,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":77342,"name":"IMirror","nameLocations":["2709:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":74440,"src":"2709:7:161"},"id":77343,"nodeType":"InheritanceSpecifier","src":"2709:7:161"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":77341,"nodeType":"StructuredDocumentation","src":"690: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":[78807,74440],"name":"Mirror","nameLocation":"2699:6:161","scope":78808,"usedErrors":[74253,74256,74259,74262,74265,74268,74271,74274,74277,74282,74287,74290,74292,74294,74296,74298,74300,74302],"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 c645216949c..432a6977493 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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5\",\"dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX\"]},\"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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3","urls":["bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5","dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX"],"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":79423,"exportedSymbols":{"Gear":[84058],"IMiddleware":[74131],"IPOAMiddleware":[74411],"MapWithTimeData":[84346],"OwnableUpgradeable":[42322],"POAMiddleware":[79422],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:7324:164","nodes":[{"id":78842,"nodeType":"PragmaDirective","src":"74:24:164","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":78844,"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":79423,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":78843,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78846,"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":79423,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":78845,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78848,"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":79423,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":78847,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"351:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78850,"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":79423,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":78849,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"440:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78852,"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":79423,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":78851,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"521:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78854,"nodeType":"ImportDirective","src":"588:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":79423,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":78853,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"596:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78856,"nodeType":"ImportDirective","src":"637:54:164","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":79423,"sourceUnit":74412,"symbolAliases":[{"foreign":{"id":78855,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74411,"src":"645:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78858,"nodeType":"ImportDirective","src":"692:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":79423,"sourceUnit":84059,"symbolAliases":[{"foreign":{"id":78857,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"700:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78860,"nodeType":"ImportDirective","src":"737:66:164","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":79423,"sourceUnit":84347,"symbolAliases":[{"foreign":{"id":78859,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84346,"src":"745:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79422,"nodeType":"ContractDefinition","src":"805:6592:164","nodes":[{"id":78873,"nodeType":"VariableDeclaration","src":"1066:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1091:12:164","scope":79422,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1066:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":78872,"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":78876,"nodeType":"VariableDeclaration","src":"1289:110:164","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1314:16:164","scope":79422,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78874,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":78875,"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":78884,"nodeType":"FunctionDefinition","src":"1474:53:164","nodes":[],"body":{"id":78883,"nodeType":"Block","src":"1488:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78880,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1498:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78881,"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":78882,"nodeType":"ExpressionStatement","src":"1498:22:164"}]},"documentation":{"id":78877,"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":78878,"nodeType":"ParameterList","parameters":[],"src":"1485:2:164"},"returnParameters":{"id":78879,"nodeType":"ParameterList","parameters":[],"src":"1488:0:164"},"scope":79422,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78918,"nodeType":"FunctionDefinition","src":"1533:294:164","nodes":[],"body":{"id":78917,"nodeType":"Block","src":"1601:226:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78893,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78887,"src":"1626:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78894,"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":78892,"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":78895,"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":78896,"nodeType":"ExpressionStatement","src":"1611:29:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78897,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"1650:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78898,"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":78899,"nodeType":"ExpressionStatement","src":"1650:33:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":78901,"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":78900,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79397,"src":"1694:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78902,"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":78903,"nodeType":"ExpressionStatement","src":"1694:50:164"},{"assignments":[78906],"declarations":[{"constant":false,"id":78906,"mutability":"mutable","name":"$","nameLocation":"1770:1:164","nodeType":"VariableDeclaration","scope":78917,"src":"1754:17:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78905,"nodeType":"UserDefinedTypeName","pathNode":{"id":78904,"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":78909,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78907,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79336,"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":78908,"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":78915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78910,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78906,"src":"1795:1:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78912,"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":78913,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78887,"src":"1806:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78914,"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":78916,"nodeType":"ExpressionStatement","src":"1795:25:164"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":78890,"kind":"modifierInvocation","modifierName":{"id":78889,"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":78888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78887,"mutability":"mutable","name":"_params","nameLocation":"1573:7:164","nodeType":"VariableDeclaration","scope":78918,"src":"1553:27:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":78886,"nodeType":"UserDefinedTypeName","pathNode":{"id":78885,"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":78891,"nodeType":"ParameterList","parameters":[],"src":"1601:0:164"},"scope":79422,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78960,"nodeType":"FunctionDefinition","src":"1900:373:164","nodes":[],"body":{"id":78959,"nodeType":"Block","src":"1958:315:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78928,"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":78929,"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":78927,"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":78930,"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":78931,"nodeType":"ExpressionStatement","src":"1968:23:164"},{"assignments":[78934],"declarations":[{"constant":false,"id":78934,"mutability":"mutable","name":"oldStorage","nameLocation":"2018:10:164","nodeType":"VariableDeclaration","scope":78959,"src":"2002:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78933,"nodeType":"UserDefinedTypeName","pathNode":{"id":78932,"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":78937,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78935,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79336,"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":78936,"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":78939,"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":78938,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79397,"src":"2052:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78940,"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":78941,"nodeType":"ExpressionStatement","src":"2052:50:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":78943,"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":78942,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79421,"src":"2112:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78944,"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":78945,"nodeType":"ExpressionStatement","src":"2112:56:164"},{"assignments":[78948],"declarations":[{"constant":false,"id":78948,"mutability":"mutable","name":"newStorage","nameLocation":"2195:10:164","nodeType":"VariableDeclaration","scope":78959,"src":"2179:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78947,"nodeType":"UserDefinedTypeName","pathNode":{"id":78946,"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":78951,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78949,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79336,"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":78950,"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":78957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78952,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78948,"src":"2229:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78954,"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":78955,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78934,"src":"2249:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78956,"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":78958,"nodeType":"ExpressionStatement","src":"2229:37:164"}]},"documentation":{"id":78919,"nodeType":"StructuredDocumentation","src":"1833:62:164","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":78922,"kind":"modifierInvocation","modifierName":{"id":78921,"name":"onlyOwner","nameLocations":["1931:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"1931:9:164"},"nodeType":"ModifierInvocation","src":"1931:9:164"},{"arguments":[{"hexValue":"32","id":78924,"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":78925,"kind":"modifierInvocation","modifierName":{"id":78923,"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":78920,"nodeType":"ParameterList","parameters":[],"src":"1921:2:164"},"returnParameters":{"id":78926,"nodeType":"ParameterList","parameters":[],"src":"1958:0:164"},"scope":79422,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78970,"nodeType":"FunctionDefinition","src":"2438:84:164","nodes":[],"body":{"id":78969,"nodeType":"Block","src":"2520:2:164","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":78961,"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":78967,"kind":"modifierInvocation","modifierName":{"id":78966,"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":78965,"nodeType":"OverrideSpecifier","overrides":[],"src":"2501:8:164"},"parameters":{"id":78964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78963,"mutability":"mutable","name":"newImplementation","nameLocation":"2473:17:164","nodeType":"VariableDeclaration","scope":78970,"src":"2465:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78962,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:27:164"},"returnParameters":{"id":78968,"nodeType":"ParameterList","parameters":[],"src":"2520:0:164"},"scope":79422,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78986,"nodeType":"FunctionDefinition","src":"2653:124:164","nodes":[],"body":{"id":78985,"nodeType":"Block","src":"2724:53:164","nodes":[],"statements":[{"expression":{"id":78983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78979,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79349,"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":78980,"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":78981,"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":78982,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78974,"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":78984,"nodeType":"ExpressionStatement","src":"2734:36:164"}]},"baseFunctions":[74410],"documentation":{"id":78971,"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":78977,"kind":"modifierInvocation","modifierName":{"id":78976,"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":78975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78974,"mutability":"mutable","name":"validators","nameLocation":"2693:10:164","nodeType":"VariableDeclaration","scope":78986,"src":"2676:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78972,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78973,"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":78978,"nodeType":"ParameterList","parameters":[],"src":"2724:0:164"},"scope":79422,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79001,"nodeType":"FunctionDefinition","src":"2783:129:164","nodes":[],"body":{"id":79000,"nodeType":"Block","src":"2865:47:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78996,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79349,"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":78997,"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":78998,"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":78995,"id":78999,"nodeType":"Return","src":"2875:30:164"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2792:14:164","parameters":{"id":78991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79001,"src":"2807:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78987,"name":"uint48","nodeType":"ElementaryTypeName","src":"2807:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79001,"src":"2815:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2815:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2806:17:164"},"returnParameters":{"id":78995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79001,"src":"2847:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78992,"name":"address","nodeType":"ElementaryTypeName","src":"2847:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78993,"nodeType":"ArrayTypeName","src":"2847:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2846:18:164"},"scope":79422,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79011,"nodeType":"FunctionDefinition","src":"2918:91:164","nodes":[],"body":{"id":79010,"nodeType":"Block","src":"2968:41:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79006,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79336,"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":79007,"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":79008,"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":79005,"id":79009,"nodeType":"Return","src":"2978:24:164"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2927:6:164","parameters":{"id":79002,"nodeType":"ParameterList","parameters":[],"src":"2933:2:164"},"returnParameters":{"id":79005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79011,"src":"2959:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79003,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2958:9:164"},"scope":79422,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79021,"nodeType":"FunctionDefinition","src":"3168:94:164","nodes":[],"body":{"id":79020,"nodeType":"Block","src":"3220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79017,"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":79016,"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":79018,"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":79019,"nodeType":"ExpressionStatement","src":"3230:25:164"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3177:11:164","parameters":{"id":79012,"nodeType":"ParameterList","parameters":[],"src":"3188:2:164"},"returnParameters":{"id":79015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79021,"src":"3212:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79013,"name":"uint48","nodeType":"ElementaryTypeName","src":"3212:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3211:8:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79031,"nodeType":"FunctionDefinition","src":"3268:104:164","nodes":[],"body":{"id":79030,"nodeType":"Block","src":"3330:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79027,"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":79026,"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":79028,"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":79029,"nodeType":"ExpressionStatement","src":"3340:25:164"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3277:21:164","parameters":{"id":79022,"nodeType":"ParameterList","parameters":[],"src":"3298:2:164"},"returnParameters":{"id":79025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79031,"src":"3322:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79023,"name":"uint48","nodeType":"ElementaryTypeName","src":"3322:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3321:8:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79041,"nodeType":"FunctionDefinition","src":"3378:102:164","nodes":[],"body":{"id":79040,"nodeType":"Block","src":"3438:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79037,"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":79036,"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":79038,"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":79039,"nodeType":"ExpressionStatement","src":"3448:25:164"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3387:19:164","parameters":{"id":79032,"nodeType":"ParameterList","parameters":[],"src":"3406:2:164"},"returnParameters":{"id":79035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79041,"src":"3430:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79033,"name":"uint48","nodeType":"ElementaryTypeName","src":"3430:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3429:8:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79051,"nodeType":"FunctionDefinition","src":"3486:99:164","nodes":[],"body":{"id":79050,"nodeType":"Block","src":"3543:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79047,"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":79046,"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":79048,"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":79049,"nodeType":"ExpressionStatement","src":"3553:25:164"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3495:16:164","parameters":{"id":79042,"nodeType":"ParameterList","parameters":[],"src":"3511:2:164"},"returnParameters":{"id":79045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79044,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79051,"src":"3535:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79043,"name":"uint48","nodeType":"ElementaryTypeName","src":"3535:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3534:8:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79061,"nodeType":"FunctionDefinition","src":"3591:98:164","nodes":[],"body":{"id":79060,"nodeType":"Block","src":"3647:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79057,"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":79056,"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":79058,"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":79059,"nodeType":"ExpressionStatement","src":"3657:25:164"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3600:15:164","parameters":{"id":79052,"nodeType":"ParameterList","parameters":[],"src":"3615:2:164"},"returnParameters":{"id":79055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79054,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79061,"src":"3639:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79053,"name":"uint48","nodeType":"ElementaryTypeName","src":"3639:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3638:8:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79071,"nodeType":"FunctionDefinition","src":"3695:105:164","nodes":[],"body":{"id":79070,"nodeType":"Block","src":"3758:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79067,"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":79066,"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":79068,"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":79069,"nodeType":"ExpressionStatement","src":"3768:25:164"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3704:22:164","parameters":{"id":79062,"nodeType":"ParameterList","parameters":[],"src":"3726:2:164"},"returnParameters":{"id":79065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79071,"src":"3750:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79063,"name":"uint48","nodeType":"ElementaryTypeName","src":"3750:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3749:8:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79081,"nodeType":"FunctionDefinition","src":"3806:109:164","nodes":[],"body":{"id":79080,"nodeType":"Block","src":"3873:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79077,"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":79076,"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":79078,"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":79079,"nodeType":"ExpressionStatement","src":"3883:25:164"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3815:25:164","parameters":{"id":79072,"nodeType":"ParameterList","parameters":[],"src":"3840:2:164"},"returnParameters":{"id":79075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79081,"src":"3864:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79073,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3863:9:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79091,"nodeType":"FunctionDefinition","src":"3921:106:164","nodes":[],"body":{"id":79090,"nodeType":"Block","src":"3985:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79087,"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":79086,"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":79088,"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":79089,"nodeType":"ExpressionStatement","src":"3995:25:164"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3930:23:164","parameters":{"id":79082,"nodeType":"ParameterList","parameters":[],"src":"3953:2:164"},"returnParameters":{"id":79085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79091,"src":"3977:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79083,"name":"uint64","nodeType":"ElementaryTypeName","src":"3977:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3976:8:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79101,"nodeType":"FunctionDefinition","src":"4033:102:164","nodes":[],"body":{"id":79100,"nodeType":"Block","src":"4093:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79097,"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":79096,"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":79098,"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":79099,"nodeType":"ExpressionStatement","src":"4103:25:164"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"4042:19:164","parameters":{"id":79092,"nodeType":"ParameterList","parameters":[],"src":"4061:2:164"},"returnParameters":{"id":79095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79101,"src":"4085:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79093,"name":"uint64","nodeType":"ElementaryTypeName","src":"4085:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4084:8:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79111,"nodeType":"FunctionDefinition","src":"4141:94:164","nodes":[],"body":{"id":79110,"nodeType":"Block","src":"4193:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79107,"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":79106,"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":79108,"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":79109,"nodeType":"ExpressionStatement","src":"4203:25:164"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4150:10:164","parameters":{"id":79102,"nodeType":"ParameterList","parameters":[],"src":"4160:2:164"},"returnParameters":{"id":79105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79111,"src":"4184:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79103,"name":"address","nodeType":"ElementaryTypeName","src":"4184:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4183:9:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79121,"nodeType":"FunctionDefinition","src":"4241:94:164","nodes":[],"body":{"id":79120,"nodeType":"Block","src":"4293:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79117,"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":79116,"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":79118,"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":79119,"nodeType":"ExpressionStatement","src":"4303:25:164"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4250:10:164","parameters":{"id":79112,"nodeType":"ParameterList","parameters":[],"src":"4260:2:164"},"returnParameters":{"id":79115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79121,"src":"4284:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4284:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4283:9:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79131,"nodeType":"FunctionDefinition","src":"4341:95:164","nodes":[],"body":{"id":79130,"nodeType":"Block","src":"4394:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79127,"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":79126,"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":79128,"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":79129,"nodeType":"ExpressionStatement","src":"4404:25:164"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4350:11:164","parameters":{"id":79122,"nodeType":"ParameterList","parameters":[],"src":"4361:2:164"},"returnParameters":{"id":79125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79131,"src":"4385:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79123,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4384:9:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79142,"nodeType":"FunctionDefinition","src":"4442:125:164","nodes":[],"body":{"id":79141,"nodeType":"Block","src":"4525:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79138,"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":79137,"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":79139,"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":79140,"nodeType":"ExpressionStatement","src":"4535:25:164"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4451:18:164","parameters":{"id":79132,"nodeType":"ParameterList","parameters":[],"src":"4469:2:164"},"returnParameters":{"id":79136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79142,"src":"4493:30:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83195_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":79134,"nodeType":"UserDefinedTypeName","pathNode":{"id":79133,"name":"Gear.SymbioticContracts","nameLocations":["4493:4:164","4498:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":83195,"src":"4493:23:164"},"referencedDeclaration":83195,"src":"4493:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83195_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4492:32:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79150,"nodeType":"FunctionDefinition","src":"4573:81:164","nodes":[],"body":{"id":79149,"nodeType":"Block","src":"4612:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79146,"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":79145,"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":79147,"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":79148,"nodeType":"ExpressionStatement","src":"4622:25:164"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4582:15:164","parameters":{"id":79143,"nodeType":"ParameterList","parameters":[],"src":"4597:2:164"},"returnParameters":{"id":79144,"nodeType":"ParameterList","parameters":[],"src":"4612:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79158,"nodeType":"FunctionDefinition","src":"4660:80:164","nodes":[],"body":{"id":79157,"nodeType":"Block","src":"4698:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79154,"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":79153,"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":79155,"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":79156,"nodeType":"ExpressionStatement","src":"4708:25:164"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4669:14:164","parameters":{"id":79151,"nodeType":"ParameterList","parameters":[],"src":"4683:2:164"},"returnParameters":{"id":79152,"nodeType":"ParameterList","parameters":[],"src":"4698:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79168,"nodeType":"FunctionDefinition","src":"4746:93:164","nodes":[],"body":{"id":79167,"nodeType":"Block","src":"4797:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79164,"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":79163,"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":79165,"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":79166,"nodeType":"ExpressionStatement","src":"4807:25:164"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4755:20:164","parameters":{"id":79161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79168,"src":"4776:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79159,"name":"address","nodeType":"ElementaryTypeName","src":"4776:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4775:9:164"},"returnParameters":{"id":79162,"nodeType":"ParameterList","parameters":[],"src":"4797:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79178,"nodeType":"FunctionDefinition","src":"4845:92:164","nodes":[],"body":{"id":79177,"nodeType":"Block","src":"4895:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79174,"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":79173,"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":79175,"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":79176,"nodeType":"ExpressionStatement","src":"4905:25:164"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4854:19:164","parameters":{"id":79171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79178,"src":"4874:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79169,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4873:9:164"},"returnParameters":{"id":79172,"nodeType":"ParameterList","parameters":[],"src":"4895:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79186,"nodeType":"FunctionDefinition","src":"4943:82:164","nodes":[],"body":{"id":79185,"nodeType":"Block","src":"4983:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79182,"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":79181,"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":79183,"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":79184,"nodeType":"ExpressionStatement","src":"4993:25:164"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4952:16:164","parameters":{"id":79179,"nodeType":"ParameterList","parameters":[],"src":"4968:2:164"},"returnParameters":{"id":79180,"nodeType":"ParameterList","parameters":[],"src":"4983:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79196,"nodeType":"FunctionDefinition","src":"5031:91:164","nodes":[],"body":{"id":79195,"nodeType":"Block","src":"5080:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79192,"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":79191,"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":79193,"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":79194,"nodeType":"ExpressionStatement","src":"5090:25:164"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"5040:18:164","parameters":{"id":79189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79188,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79196,"src":"5059:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79187,"name":"address","nodeType":"ElementaryTypeName","src":"5059:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5058:9:164"},"returnParameters":{"id":79190,"nodeType":"ParameterList","parameters":[],"src":"5080:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79212,"nodeType":"FunctionDefinition","src":"5128:134:164","nodes":[],"body":{"id":79211,"nodeType":"Block","src":"5220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79208,"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":79207,"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":79209,"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":79210,"nodeType":"ExpressionStatement","src":"5230:25:164"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5137:25:164","parameters":{"id":79203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79212,"src":"5163:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79197,"name":"address","nodeType":"ElementaryTypeName","src":"5163:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79212,"src":"5172:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79199,"name":"uint256","nodeType":"ElementaryTypeName","src":"5172:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79212,"src":"5181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5181:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5162:27:164"},"returnParameters":{"id":79206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79212,"src":"5211:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5211:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5210:9:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79227,"nodeType":"FunctionDefinition","src":"5268:150:164","nodes":[],"body":{"id":79226,"nodeType":"Block","src":"5376:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79223,"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":79222,"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":79224,"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":79225,"nodeType":"ExpressionStatement","src":"5386:25:164"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5277:23:164","parameters":{"id":79218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79227,"src":"5301:35:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":79214,"nodeType":"UserDefinedTypeName","pathNode":{"id":79213,"name":"Gear.StakerRewardsCommitment","nameLocations":["5301:4:164","5306:23:164"],"nodeType":"IdentifierPath","referencedDeclaration":83012,"src":"5301:28:164"},"referencedDeclaration":83012,"src":"5301:28:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":79217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79227,"src":"5338:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79216,"name":"uint48","nodeType":"ElementaryTypeName","src":"5338:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5300:45:164"},"returnParameters":{"id":79221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79227,"src":"5367:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5367:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5366:9:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79239,"nodeType":"FunctionDefinition","src":"5424:95:164","nodes":[],"body":{"id":79238,"nodeType":"Block","src":"5477:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79235,"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":79234,"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":79236,"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":79237,"nodeType":"ExpressionStatement","src":"5487:25:164"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5433:13:164","parameters":{"id":79232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79239,"src":"5447:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79228,"name":"address","nodeType":"ElementaryTypeName","src":"5447:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79239,"src":"5456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79230,"name":"address","nodeType":"ElementaryTypeName","src":"5456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5446:18:164"},"returnParameters":{"id":79233,"nodeType":"ParameterList","parameters":[],"src":"5477:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79249,"nodeType":"FunctionDefinition","src":"5525:85:164","nodes":[],"body":{"id":79248,"nodeType":"Block","src":"5568:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79245,"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":79244,"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":79246,"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":79247,"nodeType":"ExpressionStatement","src":"5578:25:164"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5534:12:164","parameters":{"id":79242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79241,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79249,"src":"5547:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79240,"name":"address","nodeType":"ElementaryTypeName","src":"5547:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5546:9:164"},"returnParameters":{"id":79243,"nodeType":"ParameterList","parameters":[],"src":"5568:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79259,"nodeType":"FunctionDefinition","src":"5616:84:164","nodes":[],"body":{"id":79258,"nodeType":"Block","src":"5658:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79255,"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":79254,"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":79256,"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":79257,"nodeType":"ExpressionStatement","src":"5668:25:164"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5625:11:164","parameters":{"id":79252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79259,"src":"5637:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79250,"name":"address","nodeType":"ElementaryTypeName","src":"5637:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5636:9:164"},"returnParameters":{"id":79253,"nodeType":"ParameterList","parameters":[],"src":"5658:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79269,"nodeType":"FunctionDefinition","src":"5706:88:164","nodes":[],"body":{"id":79268,"nodeType":"Block","src":"5752:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79265,"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":79264,"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":79266,"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":79267,"nodeType":"ExpressionStatement","src":"5762:25:164"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5715:15:164","parameters":{"id":79262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79269,"src":"5731:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79260,"name":"address","nodeType":"ElementaryTypeName","src":"5731:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5730:9:164"},"returnParameters":{"id":79263,"nodeType":"ParameterList","parameters":[],"src":"5752:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79283,"nodeType":"FunctionDefinition","src":"5800:117:164","nodes":[],"body":{"id":79282,"nodeType":"Block","src":"5875:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79279,"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":79278,"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":79280,"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":79281,"nodeType":"ExpressionStatement","src":"5885:25:164"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5809:18:164","parameters":{"id":79274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79283,"src":"5828:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79270,"name":"address","nodeType":"ElementaryTypeName","src":"5828:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79283,"src":"5837:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79272,"name":"uint48","nodeType":"ElementaryTypeName","src":"5837:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5827:17:164"},"returnParameters":{"id":79277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79283,"src":"5866:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79275,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5865:9:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79299,"nodeType":"FunctionDefinition","src":"5923:142:164","nodes":[],"body":{"id":79298,"nodeType":"Block","src":"6023:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79295,"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":79294,"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":79296,"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":79297,"nodeType":"ExpressionStatement","src":"6033:25:164"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5932:25:164","parameters":{"id":79286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79285,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79299,"src":"5958:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79284,"name":"uint48","nodeType":"ElementaryTypeName","src":"5958:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5957:8:164"},"returnParameters":{"id":79293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79299,"src":"5987:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79287,"name":"address","nodeType":"ElementaryTypeName","src":"5987:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79288,"nodeType":"ArrayTypeName","src":"5987:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":79292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79299,"src":"6005:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":79290,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79291,"nodeType":"ArrayTypeName","src":"6005:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5986:36:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79311,"nodeType":"FunctionDefinition","src":"6071:98:164","nodes":[],"body":{"id":79310,"nodeType":"Block","src":"6127:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79307,"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":79306,"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":79308,"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":79309,"nodeType":"ExpressionStatement","src":"6137:25:164"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6080:12:164","parameters":{"id":79304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79311,"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":79301,"nodeType":"UserDefinedTypeName","pathNode":{"id":79300,"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":79302,"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":79305,"nodeType":"ParameterList","parameters":[],"src":"6127:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79323,"nodeType":"FunctionDefinition","src":"6175:104:164","nodes":[],"body":{"id":79322,"nodeType":"Block","src":"6237:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79319,"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":79318,"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":79320,"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":79321,"nodeType":"ExpressionStatement","src":"6247:25:164"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6184:12:164","parameters":{"id":79316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79323,"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":79313,"nodeType":"UserDefinedTypeName","pathNode":{"id":79312,"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":79314,"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":79317,"nodeType":"ParameterList","parameters":[],"src":"6237:0:164"},"scope":79422,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79336,"nodeType":"FunctionDefinition","src":"6285:201:164","nodes":[],"body":{"id":79335,"nodeType":"Block","src":"6355:131:164","nodes":[],"statements":[{"assignments":[79330],"declarations":[{"constant":false,"id":79330,"mutability":"mutable","name":"slot","nameLocation":"6373:4:164","nodeType":"VariableDeclaration","scope":79335,"src":"6365:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6365:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79333,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79331,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79361,"src":"6380:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79332,"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":79327,"isOffset":false,"isSlot":true,"src":"6447:15:164","suffix":"slot","valueSize":1},{"declaration":79330,"isOffset":false,"isSlot":false,"src":"6466:4:164","valueSize":1}],"flags":["memory-safe"],"id":79334,"nodeType":"InlineAssembly","src":"6408:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6294:8:164","parameters":{"id":79324,"nodeType":"ParameterList","parameters":[],"src":"6302:2:164"},"returnParameters":{"id":79328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79327,"mutability":"mutable","name":"middleware","nameLocation":"6343:10:164","nodeType":"VariableDeclaration","scope":79336,"src":"6327:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79326,"nodeType":"UserDefinedTypeName","pathNode":{"id":79325,"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":79422,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79349,"nodeType":"FunctionDefinition","src":"6492:209:164","nodes":[],"body":{"id":79348,"nodeType":"Block","src":"6568:133:164","nodes":[],"statements":[{"assignments":[79343],"declarations":[{"constant":false,"id":79343,"mutability":"mutable","name":"slot","nameLocation":"6586:4:164","nodeType":"VariableDeclaration","scope":79348,"src":"6578:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6578:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79346,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79344,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79373,"src":"6593:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79345,"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":79340,"isOffset":false,"isSlot":true,"src":"6662:15:164","suffix":"slot","valueSize":1},{"declaration":79343,"isOffset":false,"isSlot":false,"src":"6681:4:164","valueSize":1}],"flags":["memory-safe"],"id":79347,"nodeType":"InlineAssembly","src":"6623:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6501:11:164","parameters":{"id":79337,"nodeType":"ParameterList","parameters":[],"src":"6512:2:164"},"returnParameters":{"id":79341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79340,"mutability":"mutable","name":"poaStorage","nameLocation":"6556:10:164","nodeType":"VariableDeclaration","scope":79349,"src":"6537:29:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":79339,"nodeType":"UserDefinedTypeName","pathNode":{"id":79338,"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":79422,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79361,"nodeType":"FunctionDefinition","src":"6707:128:164","nodes":[],"body":{"id":79360,"nodeType":"Block","src":"6765:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79356,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78873,"src":"6809:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79354,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6782:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79355,"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":79357,"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":79358,"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":79353,"id":79359,"nodeType":"Return","src":"6775:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6716:15:164","parameters":{"id":79350,"nodeType":"ParameterList","parameters":[],"src":"6731:2:164"},"returnParameters":{"id":79353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79361,"src":"6756:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6756:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6755:9:164"},"scope":79422,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79373,"nodeType":"FunctionDefinition","src":"6841:135:164","nodes":[],"body":{"id":79372,"nodeType":"Block","src":"6902:74:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79368,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78876,"src":"6946:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79366,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6919:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79367,"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":79369,"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":79370,"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":79365,"id":79371,"nodeType":"Return","src":"6912:57:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6850:18:164","parameters":{"id":79362,"nodeType":"ParameterList","parameters":[],"src":"6868:2:164"},"returnParameters":{"id":79365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79373,"src":"6893:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6893:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6892:9:164"},"scope":79422,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79397,"nodeType":"FunctionDefinition","src":"6982:200:164","nodes":[],"body":{"id":79396,"nodeType":"Block","src":"7050:132:164","nodes":[],"statements":[{"assignments":[79381],"declarations":[{"constant":false,"id":79381,"mutability":"mutable","name":"slot","nameLocation":"7068:4:164","nodeType":"VariableDeclaration","scope":79396,"src":"7060:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7060:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79386,"initialValue":{"arguments":[{"id":79384,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79375,"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":79382,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7075:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79383,"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":79385,"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":79394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79390,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78873,"src":"7149:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79387,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7122:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79389,"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":79391,"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":79392,"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":79393,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79381,"src":"7171:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7122:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79395,"nodeType":"ExpressionStatement","src":"7122:53:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79378,"kind":"modifierInvocation","modifierName":{"id":79377,"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":79376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79375,"mutability":"mutable","name":"namespace","nameLocation":"7021:9:164","nodeType":"VariableDeclaration","scope":79397,"src":"7007:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79374,"name":"string","nodeType":"ElementaryTypeName","src":"7007:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7006:25:164"},"returnParameters":{"id":79379,"nodeType":"ParameterList","parameters":[],"src":"7050:0:164"},"scope":79422,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79421,"nodeType":"FunctionDefinition","src":"7188:207:164","nodes":[],"body":{"id":79420,"nodeType":"Block","src":"7259:136:164","nodes":[],"statements":[{"assignments":[79405],"declarations":[{"constant":false,"id":79405,"mutability":"mutable","name":"slot","nameLocation":"7277:4:164","nodeType":"VariableDeclaration","scope":79420,"src":"7269:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79404,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7269:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79410,"initialValue":{"arguments":[{"id":79408,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79399,"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":79406,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7284:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79407,"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":79409,"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":79418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79414,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78876,"src":"7358:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79411,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7331:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79413,"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":79415,"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":79416,"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":79417,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79405,"src":"7384:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7331:57:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79419,"nodeType":"ExpressionStatement","src":"7331:57:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79402,"kind":"modifierInvocation","modifierName":{"id":79401,"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":79400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79399,"mutability":"mutable","name":"namespace","nameLocation":"7230:9:164","nodeType":"VariableDeclaration","scope":79421,"src":"7216:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79398,"name":"string","nodeType":"ElementaryTypeName","src":"7216:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7215:25:164"},"returnParameters":{"id":79403,"nodeType":"ParameterList","parameters":[],"src":"7259:0:164"},"scope":79422,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":78861,"name":"IMiddleware","nameLocations":["835:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"835:11:164"},"id":78862,"nodeType":"InheritanceSpecifier","src":"835:11:164"},{"baseName":{"id":78863,"name":"IPOAMiddleware","nameLocations":["852:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":74411,"src":"852:14:164"},"id":78864,"nodeType":"InheritanceSpecifier","src":"852:14:164"},{"baseName":{"id":78865,"name":"OwnableUpgradeable","nameLocations":["872:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"872:18:164"},"id":78866,"nodeType":"InheritanceSpecifier","src":"872:18:164"},{"baseName":{"id":78867,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["896:35:164"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"896:35:164"},"id":78868,"nodeType":"InheritanceSpecifier","src":"896:35:164"},{"baseName":{"id":78869,"name":"UUPSUpgradeable","nameLocations":["937:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"937:15:164"},"id":78870,"nodeType":"InheritanceSpecifier","src":"937:15:164"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79422,46243,44833,43943,42322,43484,42590,74411,74131],"name":"POAMiddleware","nameLocation":"814:13:164","scope":79423,"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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e\",\"dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE\"]},\"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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7","urls":["bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e","dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE"],"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":79512,"exportedSymbols":{"Gear":[84435],"IMiddleware":[74131],"IPOAMiddleware":[74456],"MapWithTimeData":[84723],"OwnableUpgradeable":[42322],"POAMiddleware":[79511],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:7324:164","nodes":[{"id":78931,"nodeType":"PragmaDirective","src":"74:24:164","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":78933,"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":79512,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":78932,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78935,"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":79512,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":78934,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78937,"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":79512,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":78936,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"351:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78939,"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":79512,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":78938,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"440:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78941,"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":79512,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":78940,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"521:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78943,"nodeType":"ImportDirective","src":"588:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":79512,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":78942,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"596:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78945,"nodeType":"ImportDirective","src":"637:54:164","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":79512,"sourceUnit":74457,"symbolAliases":[{"foreign":{"id":78944,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74456,"src":"645:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78947,"nodeType":"ImportDirective","src":"692:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":79512,"sourceUnit":84436,"symbolAliases":[{"foreign":{"id":78946,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"700:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78949,"nodeType":"ImportDirective","src":"737:66:164","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":79512,"sourceUnit":84724,"symbolAliases":[{"foreign":{"id":78948,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84723,"src":"745:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79511,"nodeType":"ContractDefinition","src":"805:6592:164","nodes":[{"id":78962,"nodeType":"VariableDeclaration","src":"1066:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1091:12:164","scope":79511,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1066:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":78961,"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":78965,"nodeType":"VariableDeclaration","src":"1289:110:164","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1314:16:164","scope":79511,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":78964,"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":78973,"nodeType":"FunctionDefinition","src":"1474:53:164","nodes":[],"body":{"id":78972,"nodeType":"Block","src":"1488:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78969,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1498:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78970,"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":78971,"nodeType":"ExpressionStatement","src":"1498:22:164"}]},"documentation":{"id":78966,"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":78967,"nodeType":"ParameterList","parameters":[],"src":"1485:2:164"},"returnParameters":{"id":78968,"nodeType":"ParameterList","parameters":[],"src":"1488:0:164"},"scope":79511,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79007,"nodeType":"FunctionDefinition","src":"1533:294:164","nodes":[],"body":{"id":79006,"nodeType":"Block","src":"1601:226:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78982,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78976,"src":"1626:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78983,"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":78981,"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":78984,"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":78985,"nodeType":"ExpressionStatement","src":"1611:29:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78986,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"1650:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78987,"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":78988,"nodeType":"ExpressionStatement","src":"1650:33:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":78990,"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":78989,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79486,"src":"1694:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78991,"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":78992,"nodeType":"ExpressionStatement","src":"1694:50:164"},{"assignments":[78995],"declarations":[{"constant":false,"id":78995,"mutability":"mutable","name":"$","nameLocation":"1770:1:164","nodeType":"VariableDeclaration","scope":79006,"src":"1754:17:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78994,"nodeType":"UserDefinedTypeName","pathNode":{"id":78993,"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":78998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78996,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79425,"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":78997,"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":79004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78999,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78995,"src":"1795:1:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79001,"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":79002,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78976,"src":"1806:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":79003,"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":79005,"nodeType":"ExpressionStatement","src":"1795:25:164"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":78979,"kind":"modifierInvocation","modifierName":{"id":78978,"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":78977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78976,"mutability":"mutable","name":"_params","nameLocation":"1573:7:164","nodeType":"VariableDeclaration","scope":79007,"src":"1553:27:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":78975,"nodeType":"UserDefinedTypeName","pathNode":{"id":78974,"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":78980,"nodeType":"ParameterList","parameters":[],"src":"1601:0:164"},"scope":79511,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79049,"nodeType":"FunctionDefinition","src":"1900:373:164","nodes":[],"body":{"id":79048,"nodeType":"Block","src":"1958:315:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79017,"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":79018,"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":79016,"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":79019,"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":79020,"nodeType":"ExpressionStatement","src":"1968:23:164"},{"assignments":[79023],"declarations":[{"constant":false,"id":79023,"mutability":"mutable","name":"oldStorage","nameLocation":"2018:10:164","nodeType":"VariableDeclaration","scope":79048,"src":"2002:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79022,"nodeType":"UserDefinedTypeName","pathNode":{"id":79021,"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":79026,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79024,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79425,"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":79025,"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":79028,"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":79027,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79486,"src":"2052:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79029,"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":79030,"nodeType":"ExpressionStatement","src":"2052:50:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":79032,"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":79031,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79510,"src":"2112:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79033,"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":79034,"nodeType":"ExpressionStatement","src":"2112:56:164"},{"assignments":[79037],"declarations":[{"constant":false,"id":79037,"mutability":"mutable","name":"newStorage","nameLocation":"2195:10:164","nodeType":"VariableDeclaration","scope":79048,"src":"2179:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79036,"nodeType":"UserDefinedTypeName","pathNode":{"id":79035,"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":79040,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79038,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79425,"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":79039,"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":79046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79041,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79037,"src":"2229:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79043,"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":79044,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79023,"src":"2249:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79045,"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":79047,"nodeType":"ExpressionStatement","src":"2229:37:164"}]},"documentation":{"id":79008,"nodeType":"StructuredDocumentation","src":"1833:62:164","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":79011,"kind":"modifierInvocation","modifierName":{"id":79010,"name":"onlyOwner","nameLocations":["1931:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"1931:9:164"},"nodeType":"ModifierInvocation","src":"1931:9:164"},{"arguments":[{"hexValue":"32","id":79013,"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":79014,"kind":"modifierInvocation","modifierName":{"id":79012,"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":79009,"nodeType":"ParameterList","parameters":[],"src":"1921:2:164"},"returnParameters":{"id":79015,"nodeType":"ParameterList","parameters":[],"src":"1958:0:164"},"scope":79511,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79059,"nodeType":"FunctionDefinition","src":"2438:84:164","nodes":[],"body":{"id":79058,"nodeType":"Block","src":"2520:2:164","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":79050,"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":79056,"kind":"modifierInvocation","modifierName":{"id":79055,"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":79054,"nodeType":"OverrideSpecifier","overrides":[],"src":"2501:8:164"},"parameters":{"id":79053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79052,"mutability":"mutable","name":"newImplementation","nameLocation":"2473:17:164","nodeType":"VariableDeclaration","scope":79059,"src":"2465:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79051,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:27:164"},"returnParameters":{"id":79057,"nodeType":"ParameterList","parameters":[],"src":"2520:0:164"},"scope":79511,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79075,"nodeType":"FunctionDefinition","src":"2653:124:164","nodes":[],"body":{"id":79074,"nodeType":"Block","src":"2724:53:164","nodes":[],"statements":[{"expression":{"id":79072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79068,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79438,"src":"2734:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74448_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":79069,"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_$74448_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":79070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2748:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74447,"src":"2734:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79071,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79063,"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":79073,"nodeType":"ExpressionStatement","src":"2734:36:164"}]},"baseFunctions":[74455],"documentation":{"id":79060,"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":79066,"kind":"modifierInvocation","modifierName":{"id":79065,"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":79064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79063,"mutability":"mutable","name":"validators","nameLocation":"2693:10:164","nodeType":"VariableDeclaration","scope":79075,"src":"2676:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79061,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79062,"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":79067,"nodeType":"ParameterList","parameters":[],"src":"2724:0:164"},"scope":79511,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79090,"nodeType":"FunctionDefinition","src":"2783:129:164","nodes":[],"body":{"id":79089,"nodeType":"Block","src":"2865:47:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79085,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79438,"src":"2882:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74448_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":79086,"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_$74448_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":79087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2896:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74447,"src":"2882:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":79084,"id":79088,"nodeType":"Return","src":"2875:30:164"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2792:14:164","parameters":{"id":79080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79090,"src":"2807:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79076,"name":"uint48","nodeType":"ElementaryTypeName","src":"2807:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79090,"src":"2815:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79078,"name":"uint256","nodeType":"ElementaryTypeName","src":"2815:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2806:17:164"},"returnParameters":{"id":79084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79090,"src":"2847:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79081,"name":"address","nodeType":"ElementaryTypeName","src":"2847:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79082,"nodeType":"ArrayTypeName","src":"2847:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2846:18:164"},"scope":79511,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79100,"nodeType":"FunctionDefinition","src":"2918:91:164","nodes":[],"body":{"id":79099,"nodeType":"Block","src":"2968:41:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79095,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79425,"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":79096,"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":79097,"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":79094,"id":79098,"nodeType":"Return","src":"2978:24:164"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2927:6:164","parameters":{"id":79091,"nodeType":"ParameterList","parameters":[],"src":"2933:2:164"},"returnParameters":{"id":79094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79100,"src":"2959:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79092,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2958:9:164"},"scope":79511,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79110,"nodeType":"FunctionDefinition","src":"3168:94:164","nodes":[],"body":{"id":79109,"nodeType":"Block","src":"3220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79106,"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":79105,"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":79107,"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":79108,"nodeType":"ExpressionStatement","src":"3230:25:164"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3177:11:164","parameters":{"id":79101,"nodeType":"ParameterList","parameters":[],"src":"3188:2:164"},"returnParameters":{"id":79104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79110,"src":"3212:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79102,"name":"uint48","nodeType":"ElementaryTypeName","src":"3212:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3211:8:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79120,"nodeType":"FunctionDefinition","src":"3268:104:164","nodes":[],"body":{"id":79119,"nodeType":"Block","src":"3330:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79116,"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":79115,"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":79117,"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":79118,"nodeType":"ExpressionStatement","src":"3340:25:164"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3277:21:164","parameters":{"id":79111,"nodeType":"ParameterList","parameters":[],"src":"3298:2:164"},"returnParameters":{"id":79114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79120,"src":"3322:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79112,"name":"uint48","nodeType":"ElementaryTypeName","src":"3322:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3321:8:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79130,"nodeType":"FunctionDefinition","src":"3378:102:164","nodes":[],"body":{"id":79129,"nodeType":"Block","src":"3438:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79126,"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":79125,"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":79127,"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":79128,"nodeType":"ExpressionStatement","src":"3448:25:164"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3387:19:164","parameters":{"id":79121,"nodeType":"ParameterList","parameters":[],"src":"3406:2:164"},"returnParameters":{"id":79124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79130,"src":"3430:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79122,"name":"uint48","nodeType":"ElementaryTypeName","src":"3430:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3429:8:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79140,"nodeType":"FunctionDefinition","src":"3486:99:164","nodes":[],"body":{"id":79139,"nodeType":"Block","src":"3543:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79136,"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":79135,"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":79137,"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":79138,"nodeType":"ExpressionStatement","src":"3553:25:164"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3495:16:164","parameters":{"id":79131,"nodeType":"ParameterList","parameters":[],"src":"3511:2:164"},"returnParameters":{"id":79134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79140,"src":"3535:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79132,"name":"uint48","nodeType":"ElementaryTypeName","src":"3535:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3534:8:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79150,"nodeType":"FunctionDefinition","src":"3591:98:164","nodes":[],"body":{"id":79149,"nodeType":"Block","src":"3647:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79146,"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":79145,"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":79147,"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":79148,"nodeType":"ExpressionStatement","src":"3657:25:164"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3600:15:164","parameters":{"id":79141,"nodeType":"ParameterList","parameters":[],"src":"3615:2:164"},"returnParameters":{"id":79144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79150,"src":"3639:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79142,"name":"uint48","nodeType":"ElementaryTypeName","src":"3639:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3638:8:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79160,"nodeType":"FunctionDefinition","src":"3695:105:164","nodes":[],"body":{"id":79159,"nodeType":"Block","src":"3758:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79156,"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":79155,"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":79157,"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":79158,"nodeType":"ExpressionStatement","src":"3768:25:164"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3704:22:164","parameters":{"id":79151,"nodeType":"ParameterList","parameters":[],"src":"3726:2:164"},"returnParameters":{"id":79154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79160,"src":"3750:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79152,"name":"uint48","nodeType":"ElementaryTypeName","src":"3750:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3749:8:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79170,"nodeType":"FunctionDefinition","src":"3806:109:164","nodes":[],"body":{"id":79169,"nodeType":"Block","src":"3873:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79166,"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":79165,"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":79167,"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":79168,"nodeType":"ExpressionStatement","src":"3883:25:164"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3815:25:164","parameters":{"id":79161,"nodeType":"ParameterList","parameters":[],"src":"3840:2:164"},"returnParameters":{"id":79164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79170,"src":"3864:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79162,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3863:9:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79180,"nodeType":"FunctionDefinition","src":"3921:106:164","nodes":[],"body":{"id":79179,"nodeType":"Block","src":"3985:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79176,"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":79175,"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":79177,"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":79178,"nodeType":"ExpressionStatement","src":"3995:25:164"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3930:23:164","parameters":{"id":79171,"nodeType":"ParameterList","parameters":[],"src":"3953:2:164"},"returnParameters":{"id":79174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79180,"src":"3977:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79172,"name":"uint64","nodeType":"ElementaryTypeName","src":"3977:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3976:8:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79190,"nodeType":"FunctionDefinition","src":"4033:102:164","nodes":[],"body":{"id":79189,"nodeType":"Block","src":"4093:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79186,"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":79185,"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":79187,"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":79188,"nodeType":"ExpressionStatement","src":"4103:25:164"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"4042:19:164","parameters":{"id":79181,"nodeType":"ParameterList","parameters":[],"src":"4061:2:164"},"returnParameters":{"id":79184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79190,"src":"4085:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79182,"name":"uint64","nodeType":"ElementaryTypeName","src":"4085:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4084:8:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79200,"nodeType":"FunctionDefinition","src":"4141:94:164","nodes":[],"body":{"id":79199,"nodeType":"Block","src":"4193:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79196,"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":79195,"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":79197,"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":79198,"nodeType":"ExpressionStatement","src":"4203:25:164"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4150:10:164","parameters":{"id":79191,"nodeType":"ParameterList","parameters":[],"src":"4160:2:164"},"returnParameters":{"id":79194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79200,"src":"4184:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79192,"name":"address","nodeType":"ElementaryTypeName","src":"4184:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4183:9:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79210,"nodeType":"FunctionDefinition","src":"4241:94:164","nodes":[],"body":{"id":79209,"nodeType":"Block","src":"4293:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79206,"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":79205,"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":79207,"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":79208,"nodeType":"ExpressionStatement","src":"4303:25:164"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4250:10:164","parameters":{"id":79201,"nodeType":"ParameterList","parameters":[],"src":"4260:2:164"},"returnParameters":{"id":79204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79210,"src":"4284:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4284:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4283:9:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79220,"nodeType":"FunctionDefinition","src":"4341:95:164","nodes":[],"body":{"id":79219,"nodeType":"Block","src":"4394:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79216,"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":79215,"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":79217,"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":79218,"nodeType":"ExpressionStatement","src":"4404:25:164"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4350:11:164","parameters":{"id":79211,"nodeType":"ParameterList","parameters":[],"src":"4361:2:164"},"returnParameters":{"id":79214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79213,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79220,"src":"4385:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79212,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4384:9:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79231,"nodeType":"FunctionDefinition","src":"4442:125:164","nodes":[],"body":{"id":79230,"nodeType":"Block","src":"4525:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79227,"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":79226,"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":79228,"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":79229,"nodeType":"ExpressionStatement","src":"4535:25:164"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4451:18:164","parameters":{"id":79221,"nodeType":"ParameterList","parameters":[],"src":"4469:2:164"},"returnParameters":{"id":79225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79231,"src":"4493:30:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83572_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":79223,"nodeType":"UserDefinedTypeName","pathNode":{"id":79222,"name":"Gear.SymbioticContracts","nameLocations":["4493:4:164","4498:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":83572,"src":"4493:23:164"},"referencedDeclaration":83572,"src":"4493:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83572_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4492:32:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79239,"nodeType":"FunctionDefinition","src":"4573:81:164","nodes":[],"body":{"id":79238,"nodeType":"Block","src":"4612:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79235,"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":79234,"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":79236,"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":79237,"nodeType":"ExpressionStatement","src":"4622:25:164"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4582:15:164","parameters":{"id":79232,"nodeType":"ParameterList","parameters":[],"src":"4597:2:164"},"returnParameters":{"id":79233,"nodeType":"ParameterList","parameters":[],"src":"4612:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79247,"nodeType":"FunctionDefinition","src":"4660:80:164","nodes":[],"body":{"id":79246,"nodeType":"Block","src":"4698:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79243,"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":79242,"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":79244,"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":79245,"nodeType":"ExpressionStatement","src":"4708:25:164"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4669:14:164","parameters":{"id":79240,"nodeType":"ParameterList","parameters":[],"src":"4683:2:164"},"returnParameters":{"id":79241,"nodeType":"ParameterList","parameters":[],"src":"4698:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79257,"nodeType":"FunctionDefinition","src":"4746:93:164","nodes":[],"body":{"id":79256,"nodeType":"Block","src":"4797:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79253,"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":79252,"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":79254,"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":79255,"nodeType":"ExpressionStatement","src":"4807:25:164"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4755:20:164","parameters":{"id":79250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79257,"src":"4776:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79248,"name":"address","nodeType":"ElementaryTypeName","src":"4776:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4775:9:164"},"returnParameters":{"id":79251,"nodeType":"ParameterList","parameters":[],"src":"4797:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79267,"nodeType":"FunctionDefinition","src":"4845:92:164","nodes":[],"body":{"id":79266,"nodeType":"Block","src":"4895:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79263,"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":79262,"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":79264,"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":79265,"nodeType":"ExpressionStatement","src":"4905:25:164"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4854:19:164","parameters":{"id":79260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79267,"src":"4874:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79258,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4873:9:164"},"returnParameters":{"id":79261,"nodeType":"ParameterList","parameters":[],"src":"4895:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79275,"nodeType":"FunctionDefinition","src":"4943:82:164","nodes":[],"body":{"id":79274,"nodeType":"Block","src":"4983:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79271,"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":79270,"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":79272,"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":79273,"nodeType":"ExpressionStatement","src":"4993:25:164"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4952:16:164","parameters":{"id":79268,"nodeType":"ParameterList","parameters":[],"src":"4968:2:164"},"returnParameters":{"id":79269,"nodeType":"ParameterList","parameters":[],"src":"4983:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79285,"nodeType":"FunctionDefinition","src":"5031:91:164","nodes":[],"body":{"id":79284,"nodeType":"Block","src":"5080:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79281,"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":79280,"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":79282,"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":79283,"nodeType":"ExpressionStatement","src":"5090:25:164"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"5040:18:164","parameters":{"id":79278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79285,"src":"5059:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79276,"name":"address","nodeType":"ElementaryTypeName","src":"5059:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5058:9:164"},"returnParameters":{"id":79279,"nodeType":"ParameterList","parameters":[],"src":"5080:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79301,"nodeType":"FunctionDefinition","src":"5128:134:164","nodes":[],"body":{"id":79300,"nodeType":"Block","src":"5220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79297,"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":79296,"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":79298,"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":79299,"nodeType":"ExpressionStatement","src":"5230:25:164"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5137:25:164","parameters":{"id":79292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79301,"src":"5163:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79286,"name":"address","nodeType":"ElementaryTypeName","src":"5163:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79301,"src":"5172:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79288,"name":"uint256","nodeType":"ElementaryTypeName","src":"5172:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79301,"src":"5181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5181:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5162:27:164"},"returnParameters":{"id":79295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79301,"src":"5211:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5211:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5210:9:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79316,"nodeType":"FunctionDefinition","src":"5268:150:164","nodes":[],"body":{"id":79315,"nodeType":"Block","src":"5376:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79312,"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":79311,"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":79313,"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":79314,"nodeType":"ExpressionStatement","src":"5386:25:164"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5277:23:164","parameters":{"id":79307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79316,"src":"5301:35:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":79303,"nodeType":"UserDefinedTypeName","pathNode":{"id":79302,"name":"Gear.StakerRewardsCommitment","nameLocations":["5301:4:164","5306:23:164"],"nodeType":"IdentifierPath","referencedDeclaration":83391,"src":"5301:28:164"},"referencedDeclaration":83391,"src":"5301:28:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":79306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79316,"src":"5338:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79305,"name":"uint48","nodeType":"ElementaryTypeName","src":"5338:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5300:45:164"},"returnParameters":{"id":79310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79316,"src":"5367:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79308,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5367:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5366:9:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79328,"nodeType":"FunctionDefinition","src":"5424:95:164","nodes":[],"body":{"id":79327,"nodeType":"Block","src":"5477:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79324,"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":79323,"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":79325,"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":79326,"nodeType":"ExpressionStatement","src":"5487:25:164"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5433:13:164","parameters":{"id":79321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79328,"src":"5447:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79317,"name":"address","nodeType":"ElementaryTypeName","src":"5447:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79328,"src":"5456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79319,"name":"address","nodeType":"ElementaryTypeName","src":"5456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5446:18:164"},"returnParameters":{"id":79322,"nodeType":"ParameterList","parameters":[],"src":"5477:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79338,"nodeType":"FunctionDefinition","src":"5525:85:164","nodes":[],"body":{"id":79337,"nodeType":"Block","src":"5568:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79334,"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":79333,"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":79335,"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":79336,"nodeType":"ExpressionStatement","src":"5578:25:164"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5534:12:164","parameters":{"id":79331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79330,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79338,"src":"5547:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79329,"name":"address","nodeType":"ElementaryTypeName","src":"5547:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5546:9:164"},"returnParameters":{"id":79332,"nodeType":"ParameterList","parameters":[],"src":"5568:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79348,"nodeType":"FunctionDefinition","src":"5616:84:164","nodes":[],"body":{"id":79347,"nodeType":"Block","src":"5658:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79344,"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":79343,"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":79345,"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":79346,"nodeType":"ExpressionStatement","src":"5668:25:164"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5625:11:164","parameters":{"id":79341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79348,"src":"5637:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79339,"name":"address","nodeType":"ElementaryTypeName","src":"5637:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5636:9:164"},"returnParameters":{"id":79342,"nodeType":"ParameterList","parameters":[],"src":"5658:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79358,"nodeType":"FunctionDefinition","src":"5706:88:164","nodes":[],"body":{"id":79357,"nodeType":"Block","src":"5752:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79354,"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":79353,"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":79355,"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":79356,"nodeType":"ExpressionStatement","src":"5762:25:164"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5715:15:164","parameters":{"id":79351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79350,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79358,"src":"5731:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79349,"name":"address","nodeType":"ElementaryTypeName","src":"5731:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5730:9:164"},"returnParameters":{"id":79352,"nodeType":"ParameterList","parameters":[],"src":"5752:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79372,"nodeType":"FunctionDefinition","src":"5800:117:164","nodes":[],"body":{"id":79371,"nodeType":"Block","src":"5875:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79368,"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":79367,"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":79369,"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":79370,"nodeType":"ExpressionStatement","src":"5885:25:164"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5809:18:164","parameters":{"id":79363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79372,"src":"5828:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79359,"name":"address","nodeType":"ElementaryTypeName","src":"5828:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79372,"src":"5837:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79361,"name":"uint48","nodeType":"ElementaryTypeName","src":"5837:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5827:17:164"},"returnParameters":{"id":79366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79372,"src":"5866:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79364,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5865:9:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79388,"nodeType":"FunctionDefinition","src":"5923:142:164","nodes":[],"body":{"id":79387,"nodeType":"Block","src":"6023:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79384,"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":79383,"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":79385,"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":79386,"nodeType":"ExpressionStatement","src":"6033:25:164"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5932:25:164","parameters":{"id":79375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79388,"src":"5958:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79373,"name":"uint48","nodeType":"ElementaryTypeName","src":"5958:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5957:8:164"},"returnParameters":{"id":79382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79388,"src":"5987:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79376,"name":"address","nodeType":"ElementaryTypeName","src":"5987:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79377,"nodeType":"ArrayTypeName","src":"5987:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":79381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79388,"src":"6005:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":79379,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79380,"nodeType":"ArrayTypeName","src":"6005:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5986:36:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79400,"nodeType":"FunctionDefinition","src":"6071:98:164","nodes":[],"body":{"id":79399,"nodeType":"Block","src":"6127:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79396,"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":79395,"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":79397,"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":79398,"nodeType":"ExpressionStatement","src":"6137:25:164"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6080:12:164","parameters":{"id":79393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79400,"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":79390,"nodeType":"UserDefinedTypeName","pathNode":{"id":79389,"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":79391,"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":79394,"nodeType":"ParameterList","parameters":[],"src":"6127:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79412,"nodeType":"FunctionDefinition","src":"6175:104:164","nodes":[],"body":{"id":79411,"nodeType":"Block","src":"6237:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79408,"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":79407,"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":79409,"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":79410,"nodeType":"ExpressionStatement","src":"6247:25:164"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6184:12:164","parameters":{"id":79405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79412,"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":79402,"nodeType":"UserDefinedTypeName","pathNode":{"id":79401,"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":79403,"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":79406,"nodeType":"ParameterList","parameters":[],"src":"6237:0:164"},"scope":79511,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79425,"nodeType":"FunctionDefinition","src":"6285:201:164","nodes":[],"body":{"id":79424,"nodeType":"Block","src":"6355:131:164","nodes":[],"statements":[{"assignments":[79419],"declarations":[{"constant":false,"id":79419,"mutability":"mutable","name":"slot","nameLocation":"6373:4:164","nodeType":"VariableDeclaration","scope":79424,"src":"6365:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6365:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79422,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79420,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79450,"src":"6380:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79421,"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":79416,"isOffset":false,"isSlot":true,"src":"6447:15:164","suffix":"slot","valueSize":1},{"declaration":79419,"isOffset":false,"isSlot":false,"src":"6466:4:164","valueSize":1}],"flags":["memory-safe"],"id":79423,"nodeType":"InlineAssembly","src":"6408:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6294:8:164","parameters":{"id":79413,"nodeType":"ParameterList","parameters":[],"src":"6302:2:164"},"returnParameters":{"id":79417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79416,"mutability":"mutable","name":"middleware","nameLocation":"6343:10:164","nodeType":"VariableDeclaration","scope":79425,"src":"6327:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79415,"nodeType":"UserDefinedTypeName","pathNode":{"id":79414,"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":79511,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79438,"nodeType":"FunctionDefinition","src":"6492:209:164","nodes":[],"body":{"id":79437,"nodeType":"Block","src":"6568:133:164","nodes":[],"statements":[{"assignments":[79432],"declarations":[{"constant":false,"id":79432,"mutability":"mutable","name":"slot","nameLocation":"6586:4:164","nodeType":"VariableDeclaration","scope":79437,"src":"6578:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6578:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79435,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79433,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79462,"src":"6593:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79434,"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":79429,"isOffset":false,"isSlot":true,"src":"6662:15:164","suffix":"slot","valueSize":1},{"declaration":79432,"isOffset":false,"isSlot":false,"src":"6681:4:164","valueSize":1}],"flags":["memory-safe"],"id":79436,"nodeType":"InlineAssembly","src":"6623:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6501:11:164","parameters":{"id":79426,"nodeType":"ParameterList","parameters":[],"src":"6512:2:164"},"returnParameters":{"id":79430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79429,"mutability":"mutable","name":"poaStorage","nameLocation":"6556:10:164","nodeType":"VariableDeclaration","scope":79438,"src":"6537:29:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74448_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":79428,"nodeType":"UserDefinedTypeName","pathNode":{"id":79427,"name":"POAStorage","nameLocations":["6537:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":74448,"src":"6537:10:164"},"referencedDeclaration":74448,"src":"6537:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74448_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6536:31:164"},"scope":79511,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79450,"nodeType":"FunctionDefinition","src":"6707:128:164","nodes":[],"body":{"id":79449,"nodeType":"Block","src":"6765:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79445,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78962,"src":"6809:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79443,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6782:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79444,"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":79446,"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":79447,"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":79442,"id":79448,"nodeType":"Return","src":"6775:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6716:15:164","parameters":{"id":79439,"nodeType":"ParameterList","parameters":[],"src":"6731:2:164"},"returnParameters":{"id":79442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79450,"src":"6756:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6756:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6755:9:164"},"scope":79511,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79462,"nodeType":"FunctionDefinition","src":"6841:135:164","nodes":[],"body":{"id":79461,"nodeType":"Block","src":"6902:74:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79457,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78965,"src":"6946:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79455,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6919:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79456,"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":79458,"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":79459,"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":79454,"id":79460,"nodeType":"Return","src":"6912:57:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6850:18:164","parameters":{"id":79451,"nodeType":"ParameterList","parameters":[],"src":"6868:2:164"},"returnParameters":{"id":79454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79462,"src":"6893:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6893:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6892:9:164"},"scope":79511,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79486,"nodeType":"FunctionDefinition","src":"6982:200:164","nodes":[],"body":{"id":79485,"nodeType":"Block","src":"7050:132:164","nodes":[],"statements":[{"assignments":[79470],"declarations":[{"constant":false,"id":79470,"mutability":"mutable","name":"slot","nameLocation":"7068:4:164","nodeType":"VariableDeclaration","scope":79485,"src":"7060:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7060:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79475,"initialValue":{"arguments":[{"id":79473,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79464,"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":79471,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7075:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79472,"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":79474,"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":79483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79479,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78962,"src":"7149:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79476,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7122:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79478,"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":79480,"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":79481,"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":79482,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79470,"src":"7171:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7122:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79484,"nodeType":"ExpressionStatement","src":"7122:53:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79467,"kind":"modifierInvocation","modifierName":{"id":79466,"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":79465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79464,"mutability":"mutable","name":"namespace","nameLocation":"7021:9:164","nodeType":"VariableDeclaration","scope":79486,"src":"7007:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79463,"name":"string","nodeType":"ElementaryTypeName","src":"7007:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7006:25:164"},"returnParameters":{"id":79468,"nodeType":"ParameterList","parameters":[],"src":"7050:0:164"},"scope":79511,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79510,"nodeType":"FunctionDefinition","src":"7188:207:164","nodes":[],"body":{"id":79509,"nodeType":"Block","src":"7259:136:164","nodes":[],"statements":[{"assignments":[79494],"declarations":[{"constant":false,"id":79494,"mutability":"mutable","name":"slot","nameLocation":"7277:4:164","nodeType":"VariableDeclaration","scope":79509,"src":"7269:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7269:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79499,"initialValue":{"arguments":[{"id":79497,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79488,"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":79495,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7284:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79496,"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":79498,"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":79507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79503,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78965,"src":"7358:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79500,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7331:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79502,"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":79504,"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":79505,"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":79506,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79494,"src":"7384:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7331:57:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79508,"nodeType":"ExpressionStatement","src":"7331:57:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79491,"kind":"modifierInvocation","modifierName":{"id":79490,"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":79489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79488,"mutability":"mutable","name":"namespace","nameLocation":"7230:9:164","nodeType":"VariableDeclaration","scope":79510,"src":"7216:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79487,"name":"string","nodeType":"ElementaryTypeName","src":"7216:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7215:25:164"},"returnParameters":{"id":79492,"nodeType":"ParameterList","parameters":[],"src":"7259:0:164"},"scope":79511,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":78950,"name":"IMiddleware","nameLocations":["835:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"835:11:164"},"id":78951,"nodeType":"InheritanceSpecifier","src":"835:11:164"},{"baseName":{"id":78952,"name":"IPOAMiddleware","nameLocations":["852:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":74456,"src":"852:14:164"},"id":78953,"nodeType":"InheritanceSpecifier","src":"852:14:164"},{"baseName":{"id":78954,"name":"OwnableUpgradeable","nameLocations":["872:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"872:18:164"},"id":78955,"nodeType":"InheritanceSpecifier","src":"872:18:164"},{"baseName":{"id":78956,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["896:35:164"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"896:35:164"},"id":78957,"nodeType":"InheritanceSpecifier","src":"896:35:164"},{"baseName":{"id":78958,"name":"UUPSUpgradeable","nameLocations":["937:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"937:15:164"},"id":78959,"nodeType":"InheritanceSpecifier","src":"937:15:164"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79511,46243,44833,43943,42322,43484,42590,74456,74131],"name":"POAMiddleware","nameLocation":"814:13:164","scope":79512,"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 2cf73d100fb..66e4016462d 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":"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":"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":"AnnouncesCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"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":"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":"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":"0x60a080604052346100c257306080525f5160206159de5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161591790816100c78239608051818181612af40152612b870152f35b6001600160401b0319166001600160401b039081175f5160206159de5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613a0c565b5f5160206158975f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e7146132b2575080630b9737ce1461327f5780630c18d277146131b45780630d91bf2a14612fe657806311bec80d14612fb3578063188509e914612f8557806328e24b3d14612f575780633644e51514612f3c5780633683c4d214612e7f5780633bd109fa14612e305780633d43b41814612ddc5780633f4ba83a14612d5c5780634f1ef28614612b4857806352d1902d14612ae157806353f7fd48146122be5780635c975abb1461228f5780636c2eb35014611d20578063715018a614611cb757806371a8cf2d14611c895780637ecebe0014611c3157806382bdeaad14611b195780638456cb5914611aa657806384b0196e1461197e57806384d22a4f1461192057806388f50cf0146118e75780638b1edf1e146118885780638c4ace6a146117285780638da5cb5b146116f35780638f381dbe146116ad5780639067088e1461166457806396a2ddfa146116365780639eb939a8146115df578063a5d53a441461155f578063ad3cb1cc14611516578063b24fcac014611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e2613308565b60036102fd5f5160206158975f395f51905f5254429061529f565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f5160206158975f395f51905f5254600701546040516001600160a01b039091168152602090f35b503461032057602036600319011261032057610386610379613308565b6103816139d9565b613968565b80f35b50346103205780600319360112610320576020601f5f5160206158975f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d2613308565b602435906044356001600160401b03811161080b576103f5903690600401613457565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613a0c565b8749156107f4575f5160206158975f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f1981018352826133c7565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e0826133c7565b51902061056161523e565b906040519161190160f01b83526002830152602282015260c43591604260a4359220615570565b909291926155f2565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e8201549101549061395b565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e881836133c7565b810190613599565b5f610677565b503d6106de565b6040513d86823e3d90fd5b81610715919493946133c7565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610764838686613742565b3514610771838686613742565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd9061394d565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a6132dc565b6108326132f2565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613a0c565b61086b602435600435613a33565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a30336004890161354f565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b6109848380926133c7565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e881836133c7565b5f610906565b6040513d88823e3d90fd5b816109ea916133c7565b61072557825f6108be565b50346103205780600319360112610320576020610a425f5160206158975f395f51905f525460086004610a28428461529f565b0154910154906001600160801b038260801c921690615213565b604051908152f35b503461032057806003193601126103205760206004610a785f5160206158975f395f51905f5254429061529f565b0154604051908152f35b50346103205780600319360112610320575f5160206158975f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f5160206158975f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f5160206158975f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f5160206158975f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f5160206158975f395f51905f5254429061529f565b016138fa565b6040519182916020835260208301906134cc565b0390f35b5034610320578060031936011261032057604051610bd581613390565b610bdd613828565b8152604051610beb81613375565b5f8152602081015f90526020820152610c02613828565b6040820152610c0f6138c7565b6060820152604051610c2081613375565b5f80825260208201526080820152610c36613828565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f5160206158975f395f51905f5254610c716138c7565b50610c7e6009820161551b565b90610c8b600f820161551b565b60088201549260405193610c9e856133ac565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce987613390565b604051610cf581613346565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613375565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613346565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e6015890161377a565b9760808a01988952601601610db290613846565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb391613508565b90606001519061027f198a8203016102e08b0152610ed091613508565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f5160206158975f395f51905f52540160043582528452205416610f816040518092613487565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb4903690600401613457565b905f5160206158975f395f51905f525490610fce836136d7565b91610fdc60405193846133c7565b838352610fe8846136d7565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d6110586001938588613742565b6137a8565b828060a01b03165f528360205260405f20546110798288613766565b5201610ffc565b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e576110dd903690600401613457565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6115075760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f5160206158975f395f51905f5254906001820154156114f85781541561149c575b6003820154604460043501350361148d5765ffffffffffff60048301541665ffffffffffff61117c60246004350161387c565b161061147f5761119160043560040183614444565b926111a660a4600435016004356004016148f9565b808096925060051b046020148515171561146b576111c68560051b615307565b8695865b81881061133657506112fc965060051b9020906111ec60043560040186614950565b6111fb60043560040187614d27565b9061120a60246004350161387c565b9361121960646004350161386e565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c7815261127e60e7826133c7565b5190209283600382015565ffffffffffff61129d60246004350161387c565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff6112f160246004350161387c565b169360243591614faa565b1561132757807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b61134a60a4600435016004356004016148f9565b891015611457578860061b8101358a526019880160205260ff60408b20541660038110156107d1576001036114485760019160209161140d8b8b8e868360061b860101926113978461492e565b156114295760061b85013590525060198c01855260408e20805460ff19166002179055601c8c0180546113c99061394d565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c9866113f88461492e565b1515926040519060061b8701358152a261492e565b908b60061b01358c52825360218b2081860152019701966111ca565b60409260199160061b87013583520187522060ff1981541690556113cc565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b6114b96114ad60646004350161386e565b600435600401356143af565b156114e95765ffffffffffff6114d360246004350161387c565b16421161114957631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b503461032057806003193601126103205750610bb46040516115396040826133c7565b60058152640352e302e360dc1b60208201526040519182916020835260208301906134a8565b50346103205780600319360112610320575f5160206158975f395f51905f52546001600160a01b039060029061159690429061529f565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c8082520190604082019182604052602083526115da603f199260608301906134a8565b030190f35b50346103205780600319360112610320576115f8613828565b50606061161560165f5160206158975f395f51905f525401613846565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f5160206158975f395f51905f52540154604051908152f35b50346103205760203660031901126103205761167e613308565b601a5f5160206158975f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b0382116103205760206116e96116e33660048601613457565b906137bc565b6040519015158152f35b50346103205780600319360112610320575f5160206158175f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff8116810361072557611752613a0c565b824915611879575f5160206158975f395f51905f52546001810154156114f85760198101918385528260205260ff604086205416600381101561186557611856576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611841575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b8161184b916133c7565b61072557825f61180c565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f5160206158975f395f51905f5254600181019081546118d8576002015463ffffffff16409081156118c9575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f5160206158975f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576119396135b1565b50604061195660155f5160206158975f395f51905f52540161377a565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f5160206158575f395f51905f52541580611a90575b15611a53576119f7906119b6614235565b906119bf614302565b906020611a05604051936119d383866133c7565b8385525f368137604051968796600f60f81b885260e08589015260e08801906134a8565b9086820360408801526134a8565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a3c57505050500390f35b835185528695509381019392810192600101611a2d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206158f75f395f51905f5254156119a5565b5034610320578060031936011261032057611abf6139d9565b611ac7613a0c565b600160ff195f5160206158b75f395f51905f525416175f5160206158b75f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e57611b4a903690600401613457565b905f5160206158975f395f51905f525490611b64836136d7565b91611b7260405193846133c7565b838352611b7e846136d7565b602084019490601f19013686376019869201915b818110611be757868587604051928392602084019060208552518091526040840192915b818110611bc4575050500390f35b9193509160208082611bd96001948851613487565b019401910191849392611bb6565b611bf2818386613742565b3587528260205260ff604088205416611c0b8287613766565b6003821015611c1d5752600101611b92565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b03611c59613308565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f5160206158975f395f51905f52540154604051908152f35b5034610320578060031936011261032057611cd06139d9565b5f5160206158175f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610320578060031936011261032057611d396139d9565b5f5160206158d75f395f51905f525460ff8160401c1690811561227a575b5061226b575f5160206158d75f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f5160206158175f395f51905f5254611db1906001600160a01b0316611da96152bb565b6103816152bb565b611db96135e7565b90611dc2613614565b90611dcb6152bb565b611dd36152bb565b82516001600160401b03811161216e57611dfa5f5160206157f75f395f51905f52546141fd565b601f8111612207575b506020601f821160011461218d57829394829392612182575b50508160011b915f199060031b1c1916175f5160206157f75f395f51905f52555b81516001600160401b03811161216e57611e645f5160206158375f395f51905f52546141fd565b601f8111612101575b50602092601f82116001146120885792829382939261207d575b50508160011b915f199060031b1c1916175f5160206158375f395f51905f52555b805f5160206158575f395f51905f5255805f5160206158f75f395f51905f52555f5160206158975f395f51905f5254611edf613fa1565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611f2d81613375565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611f58428461529f565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611fa991849161204e575b5061368b565b90816103e8026103e88104830361203a57601e820155816101f402916101f483040361202657601f015560ff60401b195f5160206158d75f395f51905f5254165f5160206158d75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b612070915060203d602011612076575b61206881836133c7565b810190613672565b5f611fa3565b503d61205e565b015190505f80611e87565b601f198216935f5160206158375f395f51905f52845280842091845b8681106120e957508360019596106120d1575b505050811b015f5160206158375f395f51905f5255611ea8565b01515f1960f88460031b161c191690555f80806120b7565b919260206001819286850151815501940192016120a4565b81811115611e6d575f5160206158375f395f51905f528352612160907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510612166575b601f82910160051c03910161401e565b5f611e6d565b859150612150565b634e487b7160e01b82526041600452602482fd5b015190505f80611e1c565b5f5160206157f75f395f51905f52835280832090601f198316845b8181106121ef575095836001959697106121d7575b505050811b015f5160206157f75f395f51905f5255611e3d565b01515f1960f88460031b161c191690555f80806121bd565b9192602060018192868b0151815501940192016121a8565b81811115611e03575f5160206157f75f395f51905f528352612265907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c906020851061216657601f82910160051c03910161401e565b5f611e03565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611d57565b5034610320578060031936011261032057602060ff5f5160206158b75f395f51905f5254166040519015158152f35b503461032057610160366003190112610320576122d9613308565b906024356001600160a01b0381169081900361098e576122f76132dc565b926123006132f2565b9360a4359060843560c43560403660e31901126108075761012435976001600160401b038911610803573660238a011215610803578860040135916001600160401b038311612add57366024848c010111612add57610144356001600160401b038111612ad957612375903690600401613457565b9690945f5160206158d75f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612ad1575b6001149081612ac7575b159081612abe575b50612aaf576123f7908a60016001600160401b03195f5160206158d75f395f51905f525416175f5160206158d75f395f51905f5255612a7f575b611da96152bb565b6123ff6152bb565b6124076135e7565b61240f613614565b906124186152bb565b6124206152bb565b8051906001600160401b038211612a6b578d829161244b5f5160206157f75f395f51905f52546141fd565b601f8111612a07575b50602091601f841160011461298b5792612980575b50508160011b915f199060031b1c1916175f5160206157f75f395f51905f52555b8051906001600160401b03821161296c578c82916124b55f5160206158375f395f51905f52546141fd565b601f8111612908575b50602091601f841160011461288c5792612881575b50508160011b915f199060031b1c1916175f5160206158375f395f51905f52555b8a5f5160206158575f395f51905f52558a5f5160206158f75f395f51905f525561251c6152bb565b6125246152bb565b4215612872578115612863578181111561285457600a6125448383613633565b048310156128455791600493916020938c60409c8d91825161256684826133c7565b601781528881017f726f757465722e73746f726167652e526f75746572563100000000000000000081526125986139d9565b5f19915190200181528760ff199120169a8b5f5160206158975f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc888d8551908152a16125ea613fa1565b8c6001825191015560028d019063ffffffff8a8201511669ffffffffffff000000008684549301518c1b169169ffffffffffffffffffff19161717905582519061263382613346565b8282526001600160a01b039081168983018190529781169390910183905260058c018054919092166001600160a01b03199182161790915560068b01805482168717905560078b018054909116909117905570030000000000000000000000000000000260088a01556126a46135b1565b506509184e72a000858d516126b881613375565b639502f900815201526015890180546001600160c01b0319166d09184e72a000000000009502f9001790558b5183908d906126f281613346565b8381528781018590520152601689015560178801556018870155601d8601805461ffff191661ffff8916179055885163313ce56760e01b815292839182905afa90811561283b579061274a91899161204e575061368b565b806103e8026103e88104820361282757601e850155806101f402906101f4820403612813576127b26127a86127b99798999a600993601f8801558a519461279086613375565b60e43586526101043560208701526024369201613403565b93429636916136ee565b9301614039565b6127c1575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f5160206158d75f395f51905f5254165f5160206158d75f395f51905f52555160018152a180f35b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b89526011600452602489fd5b87513d8a823e3d90fd5b63145e348f60e01b8b5260048bfd5b6353b2bbed60e01b8b5260048bfd5b63f7ba6bdb60e01b8b5260048bfd5b63b7d0949760e01b8b5260048bfd5b015190505f806124d3565b5f5160206158375f395f51905f5281528281209350601f198516905b8181106128f057509084600195949392106128d8575b505050811b015f5160206158375f395f51905f52556124f4565b01515f1960f88460031b161c191690555f80806128be565b929360206001819287860151815501950193016128a8565b838111156124be575f5160206158375f395f51905f528352612966907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f860160051c906020871061216657601f82910160051c03910161401e565b5f6124be565b634e487b7160e01b8d52604160045260248dfd5b015190505f80612469565b5f5160206157f75f395f51905f5281528281209350601f198516905b8181106129ef57509084600195949392106129d7575b505050811b015f5160206157f75f395f51905f525561248a565b01515f1960f88460031b161c191690555f80806129bd565b929360206001819287860151815501950193016129a7565b83811115612454575f5160206157f75f395f51905f528352612a65907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f860160051c906020871061216657601f82910160051c03910161401e565b5f612454565b634e487b7160e01b8e52604160045260248efd5b600160401b60ff60401b195f5160206158d75f395f51905f525416175f5160206158d75f395f51905f52556123ef565b63f92ee8a960e01b8c5260048cfd5b9050155f6123b5565b303b1591506123ad565b8b91506123a3565b8980fd5b8880fd5b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612b395760206040515f5160206158775f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261032057612b5d613308565b906024356001600160401b03811161098e57612b7d903690600401613439565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612d3a575b50612d2b57612bbf6139d9565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612cf3575b50612c0457634c9c8ce360e01b84526004839052602484fd5b9091845f5160206158775f395f51905f528103612ce15750813b15612ccf575f5160206158775f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612cb55780836020612ca995519101845af43d15612cad573d91612c8d836133e8565b92612c9b60405194856133c7565b83523d85602085013e615798565b5080f35b606091615798565b50505034612cc05780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612d23575b81612d0f602093836133c7565b81010312612d1f5751945f612beb565b5f80fd5b3d9150612d02565b63703e46dd60e11b8252600482fd5b5f5160206158775f395f51905f52546001600160a01b0316141590505f612bb2565b5034610320578060031936011261032057612d756139d9565b5f5160206158b75f395f51905f525460ff811615612dcd5760ff19165f5160206158b75f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612df6613308565b612dfe6139d9565b5f5160206158975f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612e496135b1565b506040612e6d612e685f5160206158975f395f51905f5254429061529f565b6135c9565b60208251918051835201516020820152f35b503461032057606036600319011261032057612e996132dc565b612ea1613a0c565b612eaf602435600435613ea9565b506001600160a01b0390811691908116612f375750335b5f5160206158975f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612ec6565b50346103205780600319360112610320576020610a4261523e565b5034610320578060031936011261032057602060015f5160206158975f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f5160206158975f395f51905f52540154604051908152f35b503461032057602036600319011261032057612fcd6139d9565b600435601e5f5160206158975f395f51905f5254015580f35b503461032057610100366003190112610320576130016132dc565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e5761302c613a0c565b61303a602435600435613ea9565b6006015490936001600160a01b0390911691823b1561080b576130818480926040518093819263d505accf60e01b835260e4359060c435906084358a30336004890161354f565b038183885af161319f575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613194578591613175575b5015613166576001600160a01b0390811692908116613160575033905b5f5160206158975f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b906130f1565b631e4e7d0960e21b8452600484fd5b61318e915060203d6020116106f6576106e881836133c7565b5f6130d4565b6040513d87823e3d90fd5b816131a9916133c7565b61072557825f61308c565b34612d1f576080366003190112612d1f576131cd6132dc565b6131d56132f2565b906131de613a0c565b6131ec602435600435613a33565b506001600160a01b0390811691908116613279575033915b813b15612d1f57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561326e5760209261325e575b50604051908152f35b5f613268916133c7565b5f613255565b6040513d5f823e3d90fd5b91613204565b34612d1f576020366003190112612d1f576132986139d9565b600435601f5f5160206158975f395f51905f525401555f80f35b34612d1f575f366003190112612d1f57602090601c5f5160206158975f395f51905f525401548152f35b604435906001600160a01b0382168203612d1f57565b606435906001600160a01b0382168203612d1f57565b600435906001600160a01b0382168203612d1f57565b35906001600160a01b0382168203612d1f57565b35906001600160801b0382168203612d1f57565b606081019081106001600160401b0382111761336157604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761336157604052565b61016081019081106001600160401b0382111761336157604052565b608081019081106001600160401b0382111761336157604052565b90601f801991011681019081106001600160401b0382111761336157604052565b6001600160401b03811161336157601f01601f191660200190565b92919261340f826133e8565b9161341d60405193846133c7565b829481845281830111612d1f578281602093845f960137010152565b9080601f83011215612d1f5781602061345493359101613403565b90565b9181601f84011215612d1f578235916001600160401b038311612d1f576020808501948460051b010111612d1f57565b9060038210156134945752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106134e95750505090565b82516001600160a01b03168452602093840193909201916001016134dc565b9060208251805183520151602082015260018060a01b03602083015116604082015260806060613546604085015160a08386015260a08501906134cc565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612d1f57518015158103612d1f5790565b604051906135be82613375565b5f6020838281520152565b906040516135d681613375565b602060018294805484520154910152565b604051906135f66040836133c7565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906136236040836133c7565b60018252603160f81b6020830152565b9190820391821161364057565b634e487b7160e01b5f52601160045260245ffd5b811561365e570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612d1f575160ff81168103612d1f5790565b60ff16604d811161364057600a0a90565b8181029291811591840414171561364057565b9190826040910312612d1f576040516136c781613375565b6020808294803584520135910152565b6001600160401b0381116133615760051b60200190565b9291906136fa816136d7565b9361370860405195866133c7565b602085838152019160051b8101928311612d1f57905b82821061372a57505050565b602080916137378461331e565b81520191019061371e565b91908110156137525760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156137525760209160051b010190565b9060405161378781613375565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612d1f5790565b6137d55f5160206158975f395f51905f5254429061529f565b600301905f5b8381106137eb5750505050600190565b6137f9611058828685613742565b6001600160a01b03165f9081526020849052604090205460ff1615613820576001016137db565b505050505f90565b6040519061383582613346565b5f6040838281528260208201520152565b9060405161385381613346565b60406002829480548452600181015460208501520154910152565b3560ff81168103612d1f5790565b3565ffffffffffff81168103612d1f5790565b6040519061389c826133ac565b5f6060836040516138ac81613375565b83815283602082015281528260208201528160408201520152565b604051906138d4826133ac565b815f81525f60208201526138e661388f565b604082015260606138f561388f565b910152565b90604051918281549182825260208201905f5260205f20925f5b81811061392b575050613929925003836133c7565b565b84546001600160a01b0316835260019485019487945060209093019201613914565b5f1981146136405760010190565b9190820180921161364057565b6001600160a01b031680156139c6575f5160206158175f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206158175f395f51905f52546001600160a01b031633036139f957565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206158b75f395f51905f525416613a2457565b63d93c066560e01b5f5260045ffd5b9190915f5160206158975f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561349457600203613e9a57815f5260205260405f206040516103008101908082106001600160401b03831117612d1f576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612d1f5760018060a01b0382165f52601a84016020528060405f2055601b8401613e5f815461394d565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f5160206158975f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561349457600203613e9a57815f5260205260405f2060405160608101908082106001600160401b03831117612d1f57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612d1f5760018060a01b0382165f52601a84016020528060405f2055601b8401613e5f815461394d565b613fa9613828565b5063ffffffff43116140065765ffffffffffff4211613fee57604051613fce81613346565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061402c57505050565b5f82820155600101614020565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe19821091826141ec575b5050156141dd5751845551600184015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff09182156141d057526002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015614101575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff191690556001016140c3565b5050925f5b845181101561414a576001906001600160a01b036141248288613766565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501614106565b5092600482018151916001600160401b03831161336157600160401b83116133615760209082548484558085106141b5575b5001905f5260205f205f5b838110614198575050505060050155565b82516001600160a01b031681830155602090920191600101614187565b6141ca90845f528580855f200191039061401e565b5f61417c565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6141f69250615775565b5f80614062565b90600182811c9216801561422b575b602083101461421757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161420c565b604051905f825f5160206157f75f395f51905f525491614254836141fd565b80835292600181169081156142e35750600114614278575b613929925003836133c7565b505f5160206157f75f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142c75750509060206139299282010161426c565b60209193508060019154838589010152019101909184926142af565b6020925061392994915060ff191682840152151560051b82010161426c565b604051905f825f5160206158375f395f51905f525491614321836141fd565b80835292600181169081156142e3575060011461434457613929925003836133c7565b505f5160206158375f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143935750509060206139299282010161426c565b602091935080600191548385890101520191019091849261437b565b435f19810193929084116136405760ff164381106143ff57505f925b838110156143db575b505f925050565b80408281036143ed5750600193505050565b156143fa575f19016143cb565b6143d4565b6144099043613633565b926143cb565b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918160051b36038313612d1f57565b90608081016001614455828461440f565b9050116148ea57614466818361440f565b9050156148c3576144769161440f565b1561375257803590603e1981360301821215612d1f570191614498838061440f565b9190928260051b9383850460201484151715613640576144ba85969495615307565b925f945f97601a60fe19853603019501965b888a101561487b578960051b85013586811215612d1f5785016144ee816137a8565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b03614520826152e6565b16151580614868575b614857575b6001600160a01b0361453f846137a8565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b03906145be906001600160a01b0361457c8561331e565b16602489015260208401356044890152614598604085016152fa565b151560648901526001600160a01b036145b36060860161331e565b166084890152613332565b1660a48601526145d060a082016152fa565b151560c486015236819003601e190160c082013581811215612d1f578201602081359101936001600160401b038211612d1f576060820236038513612d1f57819061010060e48a015252610144870193905f905b80821061480d5750505060e082013590811215612d1f5701803560208201926001600160401b038211612d1f578160051b908136038513612d1f5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106147005750505050505050602093916001600160801b03848093039316905af190811561326e575f916146ce575b50816020916001938a0152019901986144cc565b90506020813d82116146f8575b816146e8602093836133c7565b81010312612d1f575160016146ba565b3d91506146db565b919395979850919395601f19848203018752873582811215612d1f578301602081013582526001600160a01b036147396040830161331e565b1660208301526060810135603e193683900301811215612d1f578101602081013591906040016001600160401b038311612d1f578236038113612d1f57829060e060408601528160e08601526101008501375f61010083850101526001600160801b036147a860808301613332565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612d1f57836020936147ea60e086956101009560a060019a0152016152fa565b151560c0830152601f80199101160101990197019401918a989796959391614689565b90919460608060019288358152838060a01b0361482c60208b0161331e565b1660208201526001600160801b0361484660408b01613332565b166040820152019601920190614624565b9050614862816152e6565b9061452e565b5061487560a0840161492e565b15614529565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918160061b36038313612d1f57565b358015158103612d1f5790565b903590605e1981360301821215612d1f570190565b60c082016001614960828561440f565b905011614ce657614971818461440f565b9050156148c357614982908361440f565b1561375257803590607e1981360301821215612d1f570191606083019060206149aa8361387c565b91019065ffffffffffff806149be8461387c565b1691161015614cd7576149d08261387c565b65ffffffffffff80600286015460201c16911610614cc857614a1665ffffffffffff614a0f614a0982614a028761387c565b168761532c565b9361387c565b168461532c565b1115614cb9576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614a5c83614a54898961493b565b01358b61395b565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561326e575f91614c9a575b5015614c8b575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561326e575f95614c53575b5090614ae19161493b565b91614aeb8261387c565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612d1f578101602081359101936001600160401b038211612d1f578160061b36038513612d1f5760606044890152819052869360c485019392915f5b818110614c1b57505050836020959365ffffffffffff829484895f9601356064860152614b84604060018060a01b03920161331e565b16608485015216602483015203925af191821561326e575f92614be5575b50614bac9061387c565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b16606082015260468152614bdf6066826133c7565b51902090565b9091506020813d602011614c13575b81614c01602093836133c7565b81010312612d1f575190614bac614ba2565b3d9150614bf4565b919550919293604080600192838060a01b03614c368a61331e565b168152602089013560208201520196019101918895949392614b4e565b919094506020823d602011614c83575b81614c70602093836133c7565b81010312612d1f57905193614ae1614ad6565b3d9150614c63565b6367b9145160e01b5f5260045ffd5b614cb3915060203d6020116106f6576106e881836133c7565b5f614a89565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918136038313612d1f57565b9060e081016001614d38828461440f565b905011614f9b57614d49818361440f565b9050156148c357614d599161440f565b1561375257803590609e1981360301821215612d1f57016060810190614d7f828261440f565b905015614f8c5765ffffffffffff600284015460201c1691614da18342613633565b614db060168601548092613654565b9360808401359460018101809111613640578503614f7d57614dd585614ddb9361369c565b9061395b565b93614dea601782015486613633565b4210614f6e57614df990615354565b934260058601541015614f5f57614e4e906040840195614e40614e48614e1f8988614cf5565b9190614e2b888a61440f565b949091614e38368c6136af565b943691613403565b9336916136ee565b92614039565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312612d1f5760405193614e8f856133ac565b614e9936846136af565b8552356001600160401b038111612d1f57614eb79036908401613439565b602085015235906001600160401b038211612d1f570136601f82011215612d1f57614ee99036906020813591016136ee565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110614f3d57505050815203808252614bdf90602001826133c7565b82516001600160a01b0316855286955060209485019490920191600101614f20565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614fc9428461532c565b614fe1614fdb6016860154809361369c565b8361395b565b9182841080806151fd575b156151cb575083106151bd57615002908361395b565b106151ae57615012905b8261529f565b94601960f81b5f523060601b60025260165260365f2093600281101561349457806150a3575050600181036150945715613752576150538161505a92614cf5565b3691613403565b916060835103615085578260206134549401516060604083015192015192600181549101549061536f565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150b65750505050505f90565b6150db90600860048796970154910154906001600160801b038260801c921690615213565b925f9260035f9201915b868110156151a35761510b6105886151056150538460051b860186614cf5565b8661573b565b6001600160a01b0381165f9081526020859052604090205460ff16615136575b506001905b016150e5565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c1561517b5750600190615130565b94600161518992965d61394d565b93858514615197575f61512b565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116151ee57615012926151e6575b5061500c565b90505f6151e0565b6347860b9760e01b5f5260045ffd5b5061520c60188701548561395b565b4210614fec565b6001600160801b0380921602911661522b8183613654565b91811561365e5706156134545760010190565b615246615652565b61524e6156a9565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152614bdf60c0826133c7565b906152aa90826156db565b156152b557600f0190565b60090190565b60ff5f5160206158d75f395f51905f525460401c16156152d757565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103612d1f5790565b35908115158203612d1f57565b6040519190601f01601f191682016001600160401b03811183821017612d1f57604052565b601661534b6134549365ffffffffffff600285015460201c1690613633565b91015490613654565b61535e42826156db565b156153695760090190565b600f0190565b929391949061537e8587615775565b156155115782156155115770014551231950b75fc4402da1732fc9bebe19831015615511576001169061010e6153b381615307565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156151a35784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b61552361388f565b5060028101546005820154604051929091615563916004916001600160a01b031661554d866133ac565b615556826135c9565b86526020860152016138fa565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116155e7579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561326e575f516001600160a01b038116156155dd57905f905f90565b505f906001905f90565b5050505f9160039190565b60048110156134945780615604575050565b6001810361561b5763f645eedf60e01b5f5260045ffd5b60028103615636575063fce698f760e01b5f5260045260245ffd5b6003146156405750565b6335e2f38360e21b5f5260045260245ffd5b61565a614235565b805190811561566a576020012090565b50505f5160206158575f395f51905f525480156156845790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6156b1614302565b80519081156156c1576020012090565b50505f5160206158f75f395f51905f525480156156845790565b906014600e83015492015480831461572c57818184109311918215911115918190615725575b15615716578261571057505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615701565b63f26224af60e01b5f5260045ffd5b815191906041830361576b576157649250602082015190606060408401519301515f1a90615570565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b906157bc57508051156157ad57602081519101fd5b63d6bda27560e01b5f5260045ffd5b815115806157ed575b6157cd575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156157c556fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:47517:165:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;7983:34:30;7979:146;;-1:-1:-1;1553:47517:165;;;;;;;;1052:13:60;1553:47517:165;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;8085:29:30;;1553:47517:165;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1553:47517:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613a0c565b5f5160206158975f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e7146132b2575080630b9737ce1461327f5780630c18d277146131b45780630d91bf2a14612fe657806311bec80d14612fb3578063188509e914612f8557806328e24b3d14612f575780633644e51514612f3c5780633683c4d214612e7f5780633bd109fa14612e305780633d43b41814612ddc5780633f4ba83a14612d5c5780634f1ef28614612b4857806352d1902d14612ae157806353f7fd48146122be5780635c975abb1461228f5780636c2eb35014611d20578063715018a614611cb757806371a8cf2d14611c895780637ecebe0014611c3157806382bdeaad14611b195780638456cb5914611aa657806384b0196e1461197e57806384d22a4f1461192057806388f50cf0146118e75780638b1edf1e146118885780638c4ace6a146117285780638da5cb5b146116f35780638f381dbe146116ad5780639067088e1461166457806396a2ddfa146116365780639eb939a8146115df578063a5d53a441461155f578063ad3cb1cc14611516578063b24fcac014611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e2613308565b60036102fd5f5160206158975f395f51905f5254429061529f565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f5160206158975f395f51905f5254600701546040516001600160a01b039091168152602090f35b503461032057602036600319011261032057610386610379613308565b6103816139d9565b613968565b80f35b50346103205780600319360112610320576020601f5f5160206158975f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d2613308565b602435906044356001600160401b03811161080b576103f5903690600401613457565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613a0c565b8749156107f4575f5160206158975f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f1981018352826133c7565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e0826133c7565b51902061056161523e565b906040519161190160f01b83526002830152602282015260c43591604260a4359220615570565b909291926155f2565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e8201549101549061395b565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e881836133c7565b810190613599565b5f610677565b503d6106de565b6040513d86823e3d90fd5b81610715919493946133c7565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610764838686613742565b3514610771838686613742565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd9061394d565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a6132dc565b6108326132f2565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613a0c565b61086b602435600435613a33565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a30336004890161354f565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b6109848380926133c7565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e881836133c7565b5f610906565b6040513d88823e3d90fd5b816109ea916133c7565b61072557825f6108be565b50346103205780600319360112610320576020610a425f5160206158975f395f51905f525460086004610a28428461529f565b0154910154906001600160801b038260801c921690615213565b604051908152f35b503461032057806003193601126103205760206004610a785f5160206158975f395f51905f5254429061529f565b0154604051908152f35b50346103205780600319360112610320575f5160206158975f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f5160206158975f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f5160206158975f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f5160206158975f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f5160206158975f395f51905f5254429061529f565b016138fa565b6040519182916020835260208301906134cc565b0390f35b5034610320578060031936011261032057604051610bd581613390565b610bdd613828565b8152604051610beb81613375565b5f8152602081015f90526020820152610c02613828565b6040820152610c0f6138c7565b6060820152604051610c2081613375565b5f80825260208201526080820152610c36613828565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f5160206158975f395f51905f5254610c716138c7565b50610c7e6009820161551b565b90610c8b600f820161551b565b60088201549260405193610c9e856133ac565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce987613390565b604051610cf581613346565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613375565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613346565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e6015890161377a565b9760808a01988952601601610db290613846565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb391613508565b90606001519061027f198a8203016102e08b0152610ed091613508565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f5160206158975f395f51905f52540160043582528452205416610f816040518092613487565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb4903690600401613457565b905f5160206158975f395f51905f525490610fce836136d7565b91610fdc60405193846133c7565b838352610fe8846136d7565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d6110586001938588613742565b6137a8565b828060a01b03165f528360205260405f20546110798288613766565b5201610ffc565b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e576110dd903690600401613457565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6115075760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f5160206158975f395f51905f5254906001820154156114f85781541561149c575b6003820154604460043501350361148d5765ffffffffffff60048301541665ffffffffffff61117c60246004350161387c565b161061147f5761119160043560040183614444565b926111a660a4600435016004356004016148f9565b808096925060051b046020148515171561146b576111c68560051b615307565b8695865b81881061133657506112fc965060051b9020906111ec60043560040186614950565b6111fb60043560040187614d27565b9061120a60246004350161387c565b9361121960646004350161386e565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c7815261127e60e7826133c7565b5190209283600382015565ffffffffffff61129d60246004350161387c565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff6112f160246004350161387c565b169360243591614faa565b1561132757807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b61134a60a4600435016004356004016148f9565b891015611457578860061b8101358a526019880160205260ff60408b20541660038110156107d1576001036114485760019160209161140d8b8b8e868360061b860101926113978461492e565b156114295760061b85013590525060198c01855260408e20805460ff19166002179055601c8c0180546113c99061394d565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c9866113f88461492e565b1515926040519060061b8701358152a261492e565b908b60061b01358c52825360218b2081860152019701966111ca565b60409260199160061b87013583520187522060ff1981541690556113cc565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b6114b96114ad60646004350161386e565b600435600401356143af565b156114e95765ffffffffffff6114d360246004350161387c565b16421161114957631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b503461032057806003193601126103205750610bb46040516115396040826133c7565b60058152640352e302e360dc1b60208201526040519182916020835260208301906134a8565b50346103205780600319360112610320575f5160206158975f395f51905f52546001600160a01b039060029061159690429061529f565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c8082520190604082019182604052602083526115da603f199260608301906134a8565b030190f35b50346103205780600319360112610320576115f8613828565b50606061161560165f5160206158975f395f51905f525401613846565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f5160206158975f395f51905f52540154604051908152f35b50346103205760203660031901126103205761167e613308565b601a5f5160206158975f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b0382116103205760206116e96116e33660048601613457565b906137bc565b6040519015158152f35b50346103205780600319360112610320575f5160206158175f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff8116810361072557611752613a0c565b824915611879575f5160206158975f395f51905f52546001810154156114f85760198101918385528260205260ff604086205416600381101561186557611856576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611841575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b8161184b916133c7565b61072557825f61180c565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f5160206158975f395f51905f5254600181019081546118d8576002015463ffffffff16409081156118c9575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f5160206158975f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576119396135b1565b50604061195660155f5160206158975f395f51905f52540161377a565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f5160206158575f395f51905f52541580611a90575b15611a53576119f7906119b6614235565b906119bf614302565b906020611a05604051936119d383866133c7565b8385525f368137604051968796600f60f81b885260e08589015260e08801906134a8565b9086820360408801526134a8565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a3c57505050500390f35b835185528695509381019392810192600101611a2d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206158f75f395f51905f5254156119a5565b5034610320578060031936011261032057611abf6139d9565b611ac7613a0c565b600160ff195f5160206158b75f395f51905f525416175f5160206158b75f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e57611b4a903690600401613457565b905f5160206158975f395f51905f525490611b64836136d7565b91611b7260405193846133c7565b838352611b7e846136d7565b602084019490601f19013686376019869201915b818110611be757868587604051928392602084019060208552518091526040840192915b818110611bc4575050500390f35b9193509160208082611bd96001948851613487565b019401910191849392611bb6565b611bf2818386613742565b3587528260205260ff604088205416611c0b8287613766565b6003821015611c1d5752600101611b92565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b03611c59613308565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f5160206158975f395f51905f52540154604051908152f35b5034610320578060031936011261032057611cd06139d9565b5f5160206158175f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610320578060031936011261032057611d396139d9565b5f5160206158d75f395f51905f525460ff8160401c1690811561227a575b5061226b575f5160206158d75f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f5160206158175f395f51905f5254611db1906001600160a01b0316611da96152bb565b6103816152bb565b611db96135e7565b90611dc2613614565b90611dcb6152bb565b611dd36152bb565b82516001600160401b03811161216e57611dfa5f5160206157f75f395f51905f52546141fd565b601f8111612207575b506020601f821160011461218d57829394829392612182575b50508160011b915f199060031b1c1916175f5160206157f75f395f51905f52555b81516001600160401b03811161216e57611e645f5160206158375f395f51905f52546141fd565b601f8111612101575b50602092601f82116001146120885792829382939261207d575b50508160011b915f199060031b1c1916175f5160206158375f395f51905f52555b805f5160206158575f395f51905f5255805f5160206158f75f395f51905f52555f5160206158975f395f51905f5254611edf613fa1565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611f2d81613375565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611f58428461529f565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611fa991849161204e575b5061368b565b90816103e8026103e88104830361203a57601e820155816101f402916101f483040361202657601f015560ff60401b195f5160206158d75f395f51905f5254165f5160206158d75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b612070915060203d602011612076575b61206881836133c7565b810190613672565b5f611fa3565b503d61205e565b015190505f80611e87565b601f198216935f5160206158375f395f51905f52845280842091845b8681106120e957508360019596106120d1575b505050811b015f5160206158375f395f51905f5255611ea8565b01515f1960f88460031b161c191690555f80806120b7565b919260206001819286850151815501940192016120a4565b81811115611e6d575f5160206158375f395f51905f528352612160907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510612166575b601f82910160051c03910161401e565b5f611e6d565b859150612150565b634e487b7160e01b82526041600452602482fd5b015190505f80611e1c565b5f5160206157f75f395f51905f52835280832090601f198316845b8181106121ef575095836001959697106121d7575b505050811b015f5160206157f75f395f51905f5255611e3d565b01515f1960f88460031b161c191690555f80806121bd565b9192602060018192868b0151815501940192016121a8565b81811115611e03575f5160206157f75f395f51905f528352612265907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c906020851061216657601f82910160051c03910161401e565b5f611e03565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611d57565b5034610320578060031936011261032057602060ff5f5160206158b75f395f51905f5254166040519015158152f35b503461032057610160366003190112610320576122d9613308565b906024356001600160a01b0381169081900361098e576122f76132dc565b926123006132f2565b9360a4359060843560c43560403660e31901126108075761012435976001600160401b038911610803573660238a011215610803578860040135916001600160401b038311612add57366024848c010111612add57610144356001600160401b038111612ad957612375903690600401613457565b9690945f5160206158d75f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612ad1575b6001149081612ac7575b159081612abe575b50612aaf576123f7908a60016001600160401b03195f5160206158d75f395f51905f525416175f5160206158d75f395f51905f5255612a7f575b611da96152bb565b6123ff6152bb565b6124076135e7565b61240f613614565b906124186152bb565b6124206152bb565b8051906001600160401b038211612a6b578d829161244b5f5160206157f75f395f51905f52546141fd565b601f8111612a07575b50602091601f841160011461298b5792612980575b50508160011b915f199060031b1c1916175f5160206157f75f395f51905f52555b8051906001600160401b03821161296c578c82916124b55f5160206158375f395f51905f52546141fd565b601f8111612908575b50602091601f841160011461288c5792612881575b50508160011b915f199060031b1c1916175f5160206158375f395f51905f52555b8a5f5160206158575f395f51905f52558a5f5160206158f75f395f51905f525561251c6152bb565b6125246152bb565b4215612872578115612863578181111561285457600a6125448383613633565b048310156128455791600493916020938c60409c8d91825161256684826133c7565b601781528881017f726f757465722e73746f726167652e526f75746572563100000000000000000081526125986139d9565b5f19915190200181528760ff199120169a8b5f5160206158975f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc888d8551908152a16125ea613fa1565b8c6001825191015560028d019063ffffffff8a8201511669ffffffffffff000000008684549301518c1b169169ffffffffffffffffffff19161717905582519061263382613346565b8282526001600160a01b039081168983018190529781169390910183905260058c018054919092166001600160a01b03199182161790915560068b01805482168717905560078b018054909116909117905570030000000000000000000000000000000260088a01556126a46135b1565b506509184e72a000858d516126b881613375565b639502f900815201526015890180546001600160c01b0319166d09184e72a000000000009502f9001790558b5183908d906126f281613346565b8381528781018590520152601689015560178801556018870155601d8601805461ffff191661ffff8916179055885163313ce56760e01b815292839182905afa90811561283b579061274a91899161204e575061368b565b806103e8026103e88104820361282757601e850155806101f402906101f4820403612813576127b26127a86127b99798999a600993601f8801558a519461279086613375565b60e43586526101043560208701526024369201613403565b93429636916136ee565b9301614039565b6127c1575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f5160206158d75f395f51905f5254165f5160206158d75f395f51905f52555160018152a180f35b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b89526011600452602489fd5b87513d8a823e3d90fd5b63145e348f60e01b8b5260048bfd5b6353b2bbed60e01b8b5260048bfd5b63f7ba6bdb60e01b8b5260048bfd5b63b7d0949760e01b8b5260048bfd5b015190505f806124d3565b5f5160206158375f395f51905f5281528281209350601f198516905b8181106128f057509084600195949392106128d8575b505050811b015f5160206158375f395f51905f52556124f4565b01515f1960f88460031b161c191690555f80806128be565b929360206001819287860151815501950193016128a8565b838111156124be575f5160206158375f395f51905f528352612966907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f860160051c906020871061216657601f82910160051c03910161401e565b5f6124be565b634e487b7160e01b8d52604160045260248dfd5b015190505f80612469565b5f5160206157f75f395f51905f5281528281209350601f198516905b8181106129ef57509084600195949392106129d7575b505050811b015f5160206157f75f395f51905f525561248a565b01515f1960f88460031b161c191690555f80806129bd565b929360206001819287860151815501950193016129a7565b83811115612454575f5160206157f75f395f51905f528352612a65907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f860160051c906020871061216657601f82910160051c03910161401e565b5f612454565b634e487b7160e01b8e52604160045260248efd5b600160401b60ff60401b195f5160206158d75f395f51905f525416175f5160206158d75f395f51905f52556123ef565b63f92ee8a960e01b8c5260048cfd5b9050155f6123b5565b303b1591506123ad565b8b91506123a3565b8980fd5b8880fd5b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612b395760206040515f5160206158775f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261032057612b5d613308565b906024356001600160401b03811161098e57612b7d903690600401613439565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612d3a575b50612d2b57612bbf6139d9565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612cf3575b50612c0457634c9c8ce360e01b84526004839052602484fd5b9091845f5160206158775f395f51905f528103612ce15750813b15612ccf575f5160206158775f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612cb55780836020612ca995519101845af43d15612cad573d91612c8d836133e8565b92612c9b60405194856133c7565b83523d85602085013e615798565b5080f35b606091615798565b50505034612cc05780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612d23575b81612d0f602093836133c7565b81010312612d1f5751945f612beb565b5f80fd5b3d9150612d02565b63703e46dd60e11b8252600482fd5b5f5160206158775f395f51905f52546001600160a01b0316141590505f612bb2565b5034610320578060031936011261032057612d756139d9565b5f5160206158b75f395f51905f525460ff811615612dcd5760ff19165f5160206158b75f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612df6613308565b612dfe6139d9565b5f5160206158975f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612e496135b1565b506040612e6d612e685f5160206158975f395f51905f5254429061529f565b6135c9565b60208251918051835201516020820152f35b503461032057606036600319011261032057612e996132dc565b612ea1613a0c565b612eaf602435600435613ea9565b506001600160a01b0390811691908116612f375750335b5f5160206158975f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612ec6565b50346103205780600319360112610320576020610a4261523e565b5034610320578060031936011261032057602060015f5160206158975f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f5160206158975f395f51905f52540154604051908152f35b503461032057602036600319011261032057612fcd6139d9565b600435601e5f5160206158975f395f51905f5254015580f35b503461032057610100366003190112610320576130016132dc565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e5761302c613a0c565b61303a602435600435613ea9565b6006015490936001600160a01b0390911691823b1561080b576130818480926040518093819263d505accf60e01b835260e4359060c435906084358a30336004890161354f565b038183885af161319f575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613194578591613175575b5015613166576001600160a01b0390811692908116613160575033905b5f5160206158975f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b906130f1565b631e4e7d0960e21b8452600484fd5b61318e915060203d6020116106f6576106e881836133c7565b5f6130d4565b6040513d87823e3d90fd5b816131a9916133c7565b61072557825f61308c565b34612d1f576080366003190112612d1f576131cd6132dc565b6131d56132f2565b906131de613a0c565b6131ec602435600435613a33565b506001600160a01b0390811691908116613279575033915b813b15612d1f57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561326e5760209261325e575b50604051908152f35b5f613268916133c7565b5f613255565b6040513d5f823e3d90fd5b91613204565b34612d1f576020366003190112612d1f576132986139d9565b600435601f5f5160206158975f395f51905f525401555f80f35b34612d1f575f366003190112612d1f57602090601c5f5160206158975f395f51905f525401548152f35b604435906001600160a01b0382168203612d1f57565b606435906001600160a01b0382168203612d1f57565b600435906001600160a01b0382168203612d1f57565b35906001600160a01b0382168203612d1f57565b35906001600160801b0382168203612d1f57565b606081019081106001600160401b0382111761336157604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761336157604052565b61016081019081106001600160401b0382111761336157604052565b608081019081106001600160401b0382111761336157604052565b90601f801991011681019081106001600160401b0382111761336157604052565b6001600160401b03811161336157601f01601f191660200190565b92919261340f826133e8565b9161341d60405193846133c7565b829481845281830111612d1f578281602093845f960137010152565b9080601f83011215612d1f5781602061345493359101613403565b90565b9181601f84011215612d1f578235916001600160401b038311612d1f576020808501948460051b010111612d1f57565b9060038210156134945752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106134e95750505090565b82516001600160a01b03168452602093840193909201916001016134dc565b9060208251805183520151602082015260018060a01b03602083015116604082015260806060613546604085015160a08386015260a08501906134cc565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612d1f57518015158103612d1f5790565b604051906135be82613375565b5f6020838281520152565b906040516135d681613375565b602060018294805484520154910152565b604051906135f66040836133c7565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906136236040836133c7565b60018252603160f81b6020830152565b9190820391821161364057565b634e487b7160e01b5f52601160045260245ffd5b811561365e570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612d1f575160ff81168103612d1f5790565b60ff16604d811161364057600a0a90565b8181029291811591840414171561364057565b9190826040910312612d1f576040516136c781613375565b6020808294803584520135910152565b6001600160401b0381116133615760051b60200190565b9291906136fa816136d7565b9361370860405195866133c7565b602085838152019160051b8101928311612d1f57905b82821061372a57505050565b602080916137378461331e565b81520191019061371e565b91908110156137525760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156137525760209160051b010190565b9060405161378781613375565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612d1f5790565b6137d55f5160206158975f395f51905f5254429061529f565b600301905f5b8381106137eb5750505050600190565b6137f9611058828685613742565b6001600160a01b03165f9081526020849052604090205460ff1615613820576001016137db565b505050505f90565b6040519061383582613346565b5f6040838281528260208201520152565b9060405161385381613346565b60406002829480548452600181015460208501520154910152565b3560ff81168103612d1f5790565b3565ffffffffffff81168103612d1f5790565b6040519061389c826133ac565b5f6060836040516138ac81613375565b83815283602082015281528260208201528160408201520152565b604051906138d4826133ac565b815f81525f60208201526138e661388f565b604082015260606138f561388f565b910152565b90604051918281549182825260208201905f5260205f20925f5b81811061392b575050613929925003836133c7565b565b84546001600160a01b0316835260019485019487945060209093019201613914565b5f1981146136405760010190565b9190820180921161364057565b6001600160a01b031680156139c6575f5160206158175f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206158175f395f51905f52546001600160a01b031633036139f957565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206158b75f395f51905f525416613a2457565b63d93c066560e01b5f5260045ffd5b9190915f5160206158975f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561349457600203613e9a57815f5260205260405f206040516103008101908082106001600160401b03831117612d1f576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612d1f5760018060a01b0382165f52601a84016020528060405f2055601b8401613e5f815461394d565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f5160206158975f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561349457600203613e9a57815f5260205260405f2060405160608101908082106001600160401b03831117612d1f57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612d1f5760018060a01b0382165f52601a84016020528060405f2055601b8401613e5f815461394d565b613fa9613828565b5063ffffffff43116140065765ffffffffffff4211613fee57604051613fce81613346565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061402c57505050565b5f82820155600101614020565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe19821091826141ec575b5050156141dd5751845551600184015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff09182156141d057526002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015614101575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff191690556001016140c3565b5050925f5b845181101561414a576001906001600160a01b036141248288613766565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501614106565b5092600482018151916001600160401b03831161336157600160401b83116133615760209082548484558085106141b5575b5001905f5260205f205f5b838110614198575050505060050155565b82516001600160a01b031681830155602090920191600101614187565b6141ca90845f528580855f200191039061401e565b5f61417c565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6141f69250615775565b5f80614062565b90600182811c9216801561422b575b602083101461421757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161420c565b604051905f825f5160206157f75f395f51905f525491614254836141fd565b80835292600181169081156142e35750600114614278575b613929925003836133c7565b505f5160206157f75f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142c75750509060206139299282010161426c565b60209193508060019154838589010152019101909184926142af565b6020925061392994915060ff191682840152151560051b82010161426c565b604051905f825f5160206158375f395f51905f525491614321836141fd565b80835292600181169081156142e3575060011461434457613929925003836133c7565b505f5160206158375f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143935750509060206139299282010161426c565b602091935080600191548385890101520191019091849261437b565b435f19810193929084116136405760ff164381106143ff57505f925b838110156143db575b505f925050565b80408281036143ed5750600193505050565b156143fa575f19016143cb565b6143d4565b6144099043613633565b926143cb565b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918160051b36038313612d1f57565b90608081016001614455828461440f565b9050116148ea57614466818361440f565b9050156148c3576144769161440f565b1561375257803590603e1981360301821215612d1f570191614498838061440f565b9190928260051b9383850460201484151715613640576144ba85969495615307565b925f945f97601a60fe19853603019501965b888a101561487b578960051b85013586811215612d1f5785016144ee816137a8565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b03614520826152e6565b16151580614868575b614857575b6001600160a01b0361453f846137a8565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b03906145be906001600160a01b0361457c8561331e565b16602489015260208401356044890152614598604085016152fa565b151560648901526001600160a01b036145b36060860161331e565b166084890152613332565b1660a48601526145d060a082016152fa565b151560c486015236819003601e190160c082013581811215612d1f578201602081359101936001600160401b038211612d1f576060820236038513612d1f57819061010060e48a015252610144870193905f905b80821061480d5750505060e082013590811215612d1f5701803560208201926001600160401b038211612d1f578160051b908136038513612d1f5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106147005750505050505050602093916001600160801b03848093039316905af190811561326e575f916146ce575b50816020916001938a0152019901986144cc565b90506020813d82116146f8575b816146e8602093836133c7565b81010312612d1f575160016146ba565b3d91506146db565b919395979850919395601f19848203018752873582811215612d1f578301602081013582526001600160a01b036147396040830161331e565b1660208301526060810135603e193683900301811215612d1f578101602081013591906040016001600160401b038311612d1f578236038113612d1f57829060e060408601528160e08601526101008501375f61010083850101526001600160801b036147a860808301613332565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612d1f57836020936147ea60e086956101009560a060019a0152016152fa565b151560c0830152601f80199101160101990197019401918a989796959391614689565b90919460608060019288358152838060a01b0361482c60208b0161331e565b1660208201526001600160801b0361484660408b01613332565b166040820152019601920190614624565b9050614862816152e6565b9061452e565b5061487560a0840161492e565b15614529565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918160061b36038313612d1f57565b358015158103612d1f5790565b903590605e1981360301821215612d1f570190565b60c082016001614960828561440f565b905011614ce657614971818461440f565b9050156148c357614982908361440f565b1561375257803590607e1981360301821215612d1f570191606083019060206149aa8361387c565b91019065ffffffffffff806149be8461387c565b1691161015614cd7576149d08261387c565b65ffffffffffff80600286015460201c16911610614cc857614a1665ffffffffffff614a0f614a0982614a028761387c565b168761532c565b9361387c565b168461532c565b1115614cb9576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614a5c83614a54898961493b565b01358b61395b565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561326e575f91614c9a575b5015614c8b575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561326e575f95614c53575b5090614ae19161493b565b91614aeb8261387c565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612d1f578101602081359101936001600160401b038211612d1f578160061b36038513612d1f5760606044890152819052869360c485019392915f5b818110614c1b57505050836020959365ffffffffffff829484895f9601356064860152614b84604060018060a01b03920161331e565b16608485015216602483015203925af191821561326e575f92614be5575b50614bac9061387c565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b16606082015260468152614bdf6066826133c7565b51902090565b9091506020813d602011614c13575b81614c01602093836133c7565b81010312612d1f575190614bac614ba2565b3d9150614bf4565b919550919293604080600192838060a01b03614c368a61331e565b168152602089013560208201520196019101918895949392614b4e565b919094506020823d602011614c83575b81614c70602093836133c7565b81010312612d1f57905193614ae1614ad6565b3d9150614c63565b6367b9145160e01b5f5260045ffd5b614cb3915060203d6020116106f6576106e881836133c7565b5f614a89565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918136038313612d1f57565b9060e081016001614d38828461440f565b905011614f9b57614d49818361440f565b9050156148c357614d599161440f565b1561375257803590609e1981360301821215612d1f57016060810190614d7f828261440f565b905015614f8c5765ffffffffffff600284015460201c1691614da18342613633565b614db060168601548092613654565b9360808401359460018101809111613640578503614f7d57614dd585614ddb9361369c565b9061395b565b93614dea601782015486613633565b4210614f6e57614df990615354565b934260058601541015614f5f57614e4e906040840195614e40614e48614e1f8988614cf5565b9190614e2b888a61440f565b949091614e38368c6136af565b943691613403565b9336916136ee565b92614039565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312612d1f5760405193614e8f856133ac565b614e9936846136af565b8552356001600160401b038111612d1f57614eb79036908401613439565b602085015235906001600160401b038211612d1f570136601f82011215612d1f57614ee99036906020813591016136ee565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110614f3d57505050815203808252614bdf90602001826133c7565b82516001600160a01b0316855286955060209485019490920191600101614f20565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614fc9428461532c565b614fe1614fdb6016860154809361369c565b8361395b565b9182841080806151fd575b156151cb575083106151bd57615002908361395b565b106151ae57615012905b8261529f565b94601960f81b5f523060601b60025260165260365f2093600281101561349457806150a3575050600181036150945715613752576150538161505a92614cf5565b3691613403565b916060835103615085578260206134549401516060604083015192015192600181549101549061536f565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150b65750505050505f90565b6150db90600860048796970154910154906001600160801b038260801c921690615213565b925f9260035f9201915b868110156151a35761510b6105886151056150538460051b860186614cf5565b8661573b565b6001600160a01b0381165f9081526020859052604090205460ff16615136575b506001905b016150e5565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c1561517b5750600190615130565b94600161518992965d61394d565b93858514615197575f61512b565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116151ee57615012926151e6575b5061500c565b90505f6151e0565b6347860b9760e01b5f5260045ffd5b5061520c60188701548561395b565b4210614fec565b6001600160801b0380921602911661522b8183613654565b91811561365e5706156134545760010190565b615246615652565b61524e6156a9565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152614bdf60c0826133c7565b906152aa90826156db565b156152b557600f0190565b60090190565b60ff5f5160206158d75f395f51905f525460401c16156152d757565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103612d1f5790565b35908115158203612d1f57565b6040519190601f01601f191682016001600160401b03811183821017612d1f57604052565b601661534b6134549365ffffffffffff600285015460201c1690613633565b91015490613654565b61535e42826156db565b156153695760090190565b600f0190565b929391949061537e8587615775565b156155115782156155115770014551231950b75fc4402da1732fc9bebe19831015615511576001169061010e6153b381615307565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156151a35784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b61552361388f565b5060028101546005820154604051929091615563916004916001600160a01b031661554d866133ac565b615556826135c9565b86526020860152016138fa565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116155e7579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561326e575f516001600160a01b038116156155dd57905f905f90565b505f906001905f90565b5050505f9160039190565b60048110156134945780615604575050565b6001810361561b5763f645eedf60e01b5f5260045ffd5b60028103615636575063fce698f760e01b5f5260045260245ffd5b6003146156405750565b6335e2f38360e21b5f5260045260245ffd5b61565a614235565b805190811561566a576020012090565b50505f5160206158575f395f51905f525480156156845790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6156b1614302565b80519081156156c1576020012090565b50505f5160206158f75f395f51905f525480156156845790565b906014600e83015492015480831461572c57818184109311918215911115918190615725575b15615716578261571057505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615701565b63f26224af60e01b5f5260045ffd5b815191906041830361576b576157649250602082015190606060408401519301515f1a90615570565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b906157bc57508051156157ad57602081519101fd5b63d6bda27560e01b5f5260045ffd5b815115806157ed575b6157cd575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156157c556fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1553:47517:165:-:0;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;48775:19;;;1553:47517;48775:38;1553:47517;;-1:-1:-1;;;;;48884:9:165;1553:47517;48912:9;1553:47517;;48972:10;-1:-1:-1;1553:47517:165;;;49000:28;;;;;1553:47517;;;;;;49000:42;1553:47517;;;;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;14987:40;28092:37:169;-1:-1:-1;;;;;;;;;;;1553:47517:165;28113:15:169;28092:37;;:::i;:::-;14987:40:165;:52;1553:47517;;;;;;-1:-1:-1;1553:47517:165;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;13111:34;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;2357:1:29;1553:47517:165;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1553:47517:165;;;;;;;;;;;;;;;;19900:52;-1:-1:-1;;;;;;;;;;;1553:47517:165;19900:52;1553:47517;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;25864:11:165;;:16;1553:47517;;-1:-1:-1;;;;;;;;;;;1553:47517:165;25960:19;1553:47517;25960:19;;1553:47517;25960:38;1553:47517;;26053:19;;;1553:47517;;;;;;;;;;;;;;;;;;;;;26163:29;26233:27;;;;;26375:39;;;1553:47517;;26495:13;;26510:22;;;;;;26789:15;;;:28;1553:47517;;;;;27053:29;;;-1:-1:-1;;;;;2670:66:165;;;;27053:29;1553:47517;2670:66;7051:25:77;2670:66:165;7105:8:77;2670:66:165;;;;;;;;;27053:29;;1553:47517;;27053:29;;;;;;:::i;:::-;1553:47517;27043:40;;1553:47517;;;;;;;;;;;;972:64:36;1553:47517:165;;;;;;;;;;;;;;;26902:261;1553:47517;26902:261;;1553:47517;2670:66;1553:47517;;2670:66;1553:47517;2670:66;;1553:47517;2670:66;1553:47517;2670:66;;1553:47517;;2670:66;;1553:47517;;2670:66;;1553:47517;2670:66;1553:47517;2670:66;;1553:47517;;26902:261;;;1553:47517;26902:261;;:::i;:::-;1553:47517;26879:294;;3980:23:40;;:::i;:::-;3993:249:80;1553:47517:165;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1553:47517:165;;;3993:249:80;1553:47517:165;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47517:165;27307:20;;;2670:66;;1553:47517;;;;27485:100;1553:47517;;;;;27415:32;;;1553:47517;;27485:48;27536:49;27485:48;;;1553:47517;27536:49;;1553:47517;27485:100;;:::i;:::-;27599:77;;;;;;1553:47517;;-1:-1:-1;;;27599:77:165;;-1:-1:-1;;;;;1553:47517:165;;;27599:77;;1553:47517;27639:4;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27599:77;;;;;26490:223;-1:-1:-1;1553:47517:165;;-1:-1:-1;;;27712:57:165;;-1:-1:-1;;;;;1553:47517:165;;;;27712:57;;1553:47517;27639:4;1553:47517;;;;;;;;;;;;;;;;;;;;;;;27712:57;;;;;;;;;;;;;;26490:223;1553:47517;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;23301:19;1553:47517;;;;;;;27915:32;;;1553:47517;;;-1:-1:-1;;;1553:47517:165;;;;;27712:57;;;;1553:47517;27712:57;1553:47517;27712:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:47517;;;;;;;;;27599:77;;;;;;;;:::i;:::-;1553:47517;;27599:77;;;;;1553:47517;;;;27599:77;1553:47517;;;2670:66;-1:-1:-1;;;2670:66:165;;1553:47517;;;;;2670:66;;;1553:47517;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;26534:3;26580:11;;26613:14;;;;;;:::i;:::-;1553:47517;26613:34;26668:14;;;;;:::i;:::-;1553:47517;;;;;26534:3;;1553:47517;;26495:13;;1553:47517;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;26202:155;26327:19;;;:::i;:::-;26202:155;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;35504:37:165;1553:47517;;;;35504:37;:::i;:::-;35593:32;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;35641:96;;;;;;1553:47517;;;;;;;;;;;;35641:96;;1553:47517;;;;;;;;35681:4;;35661:10;1553:47517;35641:96;;;:::i;:::-;;;;;;;;;1553:47517;-1:-1:-1;;1553:47517:165;;-1:-1:-1;;;35773:79:165;;35661:10;1553:47517;35773:79;;1553:47517;35681:4;1553:47517;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;35773:79;;;;;;;;;;;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;35968:70;1553:47517;;;;35661:10;;35968:70;;35911:238;;;;;1553:47517;;-1:-1:-1;;;35911:238:165;;-1:-1:-1;;;;;1553:47517:165;;;;35911:238;;1553:47517;;;;;;;;;;;;;;;;;;;;;;35911:238;;;;;;;;;35968:70;1553:47517;;;;;;;;35911:238;;;;;;:::i;:::-;1553:47517;;35911:238;;;1553:47517;;;;35911:238;1553:47517;;;;;;;;;35911:238;1553:47517;;;35968:70;;;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;35773:79;;;;1553:47517;35773:79;1553:47517;35773:79;;;;;;;:::i;:::-;;;;;1553:47517;;;;;;;;;35641:96;;;;;:::i;:::-;1553:47517;;35641:96;;;;1553:47517;;;;;;;;;;;;;;16432:211;-1:-1:-1;;;;;;;;;;;1553:47517:165;16529:25;1553:47517;28092:37:169;28113:15;28092:37;;:::i;:::-;16470:38:165;1553:47517;16529:25;;1553:47517;;-1:-1:-1;;;;;1553:47517:165;;;;;16432:211;;:::i;:::-;1553:47517;;;;;;;;;;;;;;;;;;;;;28092:37:169;-1:-1:-1;;;;;;;;;;;1553:47517:165;28113:15:169;28092:37;;:::i;:::-;16046:41:165;1553:47517;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;12568:23;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;15475:25;-1:-1:-1;;;;;;;;;;;1553:47517:165;15475:25;1553:47517;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;12300:40;1553:47517;;;;;;;;;;;;;;;;;;;;;;;11710:32;-1:-1:-1;;;;;;;;;;;1553:47517:165;11710:32;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;28092:37:169;-1:-1:-1;;;;;;;;;;;1553:47517:165;28113:15:169;28092:37;;:::i;:::-;15785:41:165;1553:47517;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;:::i;:::-;-1:-1:-1;33433:28:169;33440:20;;;33433:28;:::i;:::-;33519:20;33512:28;33519:20;;;33512:28;:::i;:::-;10483:25:165;;;1553:47517;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47517:165;;;;;;;33557:241:169;;1553:47517:165;;33557:241:169;;1553:47517:165;;33557:241:169;;1553:47517:165;10872:33;;;1553:47517;10940:39;;;;1553:47517;11008:33;;;1553:47517;;;11085:48;;;1553:47517;11178:49;;;;1553:47517;;;;;;;;:::i;:::-;;;;;;:::i;:::-;33440:20:169;10566:19:165;;1553:47517;;;10872:33;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10621:27;;;1553:47517;;;;;;;;;;;;;;10526:712;;1553:47517;;;;;;;;;:::i;:::-;10677:20;;;1553:47517;-1:-1:-1;;;;;1553:47517:165;;;2288:3;;11178:49;1553:47517;;;;;;;;2288:3;33519:20:169;1553:47517:165;;;;;;;;2288:3;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10780:22;;;1553:47517;:::i;:::-;10526:712;1553:47517;10526:712;;1553:47517;;;10827:16;;1553:47517;;;:::i;:::-;10526:712;1553:47517;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;17398:22;-1:-1:-1;;;;;;;;;;;1553:47517:165;17398:22;1553:47517;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47517:165;;;;18635:28;18567:13;18635:28;;18562:129;18582:23;;;;;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;18635:28;1553:47517;;;18607:3;18664:15;;;18635:28;18664:15;;;;:::i;:::-;;:::i;:::-;1553:47517;;;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;18626:54;;;;:::i;:::-;1553:47517;;18567:13;;1553:47517;;;;;;;-1:-1:-1;;1553:47517:165;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1553:47517:165;36887:19;1948:4:38;36887:19:165;;1553:47517;36887:38;1553:47517;;;;37125:20;37121:295;;1553:47517;37529:27;;;1553:47517;;;;37565:33;1553:47517;37529:69;1553:47517;;;;37664:37;;1553:47517;;;37705:21;1553:47517;;;37705:21;;:::i;:::-;1553:47517;-1:-1:-1;1553:47517:165;;37795:28;1553:47517;;;;37795:28;;:::i;:::-;1553:47517;40621:22;;1553:47517;;40621:22;1553:47517;;;;40621:22;:::i;:::-;2366:5;;;;;;;;1553:47517;2366:5;;;;;;;40756:40;2366:5;;;40756:40;:::i;:::-;40806:18;;;40855:22;;;;;;2366:5;38593:146;2366:5;;;;1083:131:25;;1553:47517:165;37935:30;1553:47517;;;;37935:30;;:::i;:::-;38011:33;1553:47517;;;;38011:33;;:::i;:::-;1553:47517;38144:21;1553:47517;;;37705:21;38144;:::i;:::-;1553:47517;38226:13;;1553:47517;;38226:13;;:::i;:::-;1553:47517;;;19605:303:169;1553:47517:165;19605:303:169;;1553:47517:165;;;;;;;;2288:3;1553:47517;;;;;;;;;;;;;37565:33;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19605:303:169;;;;;;:::i;:::-;1553:47517:165;19582:336:169;;37529:27:165;;;;;1553:47517;;38498:21;1553:47517;;;37705:21;38498;:::i;:::-;1553:47517;2288:3;1553:47517;;37664:37;;1553:47517;;;;37664:37;;1553:47517;38535:26;1553:47517;;;;;;38535:26;1553:47517;38704:21;1553:47517;;;37705:21;38704;:::i;:::-;1553:47517;;;;38593:146;;:::i;:::-;2113:66;;;3556:68:76;757:66:38;3556:68:76;1553:47517:165;;2113:66;-1:-1:-1;;;2113:66:165;;1553:47517;;2113:66;40879:3;40941:22;40621;1553:47517;;40621:22;1553:47517;;;;40941:22;:::i;:::-;1553:47517;;;;;;;;;;;;;41006:19;;;1553:47517;;;;;;;;37529:27;1553:47517;;;;;1948:4:38;41006:79:165;1553:47517;;1948:4:38;1553:47517:165;;;41584:17;1553:47517;;;;;;;;;41164:17;;;;;:::i;:::-;;;;1553:47517;;;;;;;-1:-1:-1;41006:19:165;;;1553:47517;;;;;;;-1:-1:-1;;1553:47517:165;;;;;41287:39;;;1553:47517;;41287:41;;;:::i;:::-;1553:47517;;41160:270;41482:17;41449:51;41482:17;;;;:::i;:::-;1553:47517;;;;;;;;;;;;;41449:51;41584:17;:::i;:::-;1553:47517;;;;;;17359:159:169;;;;;;;4093:83:22;;;;1553:47517:165;40879:3;1553:47517;40840:13;;;41160:270;1553:47517;;41006:19;1553:47517;;;;;;;;41006:19;1553:47517;;;;;;;;;;41160:270;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;1553:47517;;2288:3;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;37121:295;37169:56;37211:13;;1553:47517;;37211:13;;:::i;:::-;1553:47517;;;;;37169:56;:::i;:::-;1553:47517;;;;37356:21;1553:47517;;;37356:21;;:::i;:::-;1553:47517;37338:15;:39;37121:295;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1553:47517:165;1789:30:38;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;14108:77;;28092:37:169;;28113:15;;28092:37;:::i;:::-;14108:77:165;1553:47517;;;9268:329:171;1553:47517:165;;;;;9268:329:171;;;;;;;;;;;;;;;;;;;;1553:47517:165;9268:329:171;;;;1553:47517:165;9268:329:171;1553:47517:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20138:19;-1:-1:-1;;;;;;;;;;;1553:47517:165;20138:19;1553:47517;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18907:36;-1:-1:-1;;;;;;;;;;;1553:47517:165;18907:36;1553:47517;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;18160:31;-1:-1:-1;;;;;;;;;;;1553:47517:165;18160:31;:43;1553:47517;;;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;23205:11:165;;:16;1553:47517;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;23301:19;;1553:47517;23301:38;1553:47517;;23394:19;;;1553:47517;;;;;;;;;;;;;;;;;;;;;23545:32;;;1553:47517;23607:48;;;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;23669:78;;;;;1553:47517;;-1:-1:-1;;;23669:78:165;;23689:10;1553:47517;23669:78;;1553:47517;23709:4;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23669:78;;;;;1553:47517;-1:-1:-1;;1553:47517:165;;-1:-1:-1;;;23783:61:165;;23689:10;1553:47517;23783:61;;1553:47517;23709:4;1553:47517;;;;;;;;;;;;;;;;;;;;;;23783:61;1553:47517;23669:78;;;;;:::i;:::-;1553:47517;;23669:78;;;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;21897:19;;;1553:47517;;;;;22004:26;;1553:47517;;;21994:37;;22050:25;;1553:47517;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;12840:35;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17167:25;-1:-1:-1;;;;;;;;;;;1553:47517:165;17167:25;1553:47517;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;5647:18:40;:43;;;1553:47517:165;;;;;;;;:::i;:::-;;;;:::i;:::-;;2446:3;1553:47517;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;;1553:47517:165;;;;5870:4:40;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;5647:43:40;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;5669:21:40;5647:43;;1553:47517:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;3319:20:37;1553:47517:165;;;966:10:34;1553:47517:165;;3319:20:37;1553:47517:165;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47517:165;;;;17867:19;17802:13;17867:19;;17797:120;17817:20;;;;;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;17839:3;17893:12;;;;;:::i;:::-;1553:47517;;;;;;;;;;;;17858:48;;;;:::i;:::-;1553:47517;;;;;;;;;17802:13;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;:::i;:::-;;;;972:64:36;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;11994:30;-1:-1:-1;;;;;;;;;;;1553:47517:165;11994:30;1553:47517;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;1553:47517:165;;;;;;;-1:-1:-1;;;;;1553:47517:165;3975:40:29;1553:47517:165;;3975:40:29;1553:47517:165;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;6429:44:30;;;;;1553:47517:165;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;6959:1:30;;-1:-1:-1;;;;;1553:47517:165;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1553:47517:165;;:::i;:::-;2224:17;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47517:165;;-1:-1:-1;;;;;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;-1:-1:-1;;;;;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;3676:10:40;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;9320:17;;:::i;:::-;2288:3;;6591:4:30;9298:19:165;;1553:47517;3652:7:40;2288:3:165;;;1553:47517;;2288:3;;;1553:47517;2288:3;1553:47517;2288:3;;;;;1553:47517;2288:3;;;;;;;;;;1553:47517;;;;;;;:::i;:::-;;;;9377:57;1553:47517;9347:27;3676:10:40;9347:27:165;;1553:47517;;;;2288:3;1553:47517;;;;;;;;28092:37:169;28113:15;28092:37;;:::i;:::-;9487:38:165;1553:47517;;;9444:33;;;1553:47517;;2203:1:169;;;;;;;;1553:47517:165;;;;;;;9587:32;;;1553:47517;;;;;;;;;;;9574:57;;;;;;;;9568:63;9574:57;;;;;1553:47517;9568:63;;:::i;:::-;2366:5;;;;;;;;;;;9641:48;;;1553:47517;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;1553:47517;9759:49;1553:47517;-1:-1:-1;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;6654:20:30;1553:47517:165;;;6907:1;1553:47517;;6654:20:30;1553:47517:165;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;;1553:47517;2288:3;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;;1553:47517;2288:3;9574:57;;;;1553:47517;9574:57;1553:47517;9574:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:47517;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;3676:10:40;1553:47517:165;;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;6907:1;1553:47517;;;;;;;;;;;;6907:1;1553:47517;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47517:165;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;6907:1;1553:47517;;;;;;;;;;;6907:1;1553:47517;;;;;:::i;:::-;;;;6425:105:30;-1:-1:-1;;;6496:23:30;;1553:47517:165;;6496:23:30;6429:44;6907:1:165;1553:47517;;-1:-1:-1;;;;;1553:47517:165;6448:25:30;;6429:44;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;1553:47517:165;;;;;4301:16:30;1553:47517:165;;4724:16:30;;:34;;;;1553:47517:165;;4788:16:30;:50;;;;1553:47517:165;4853:13:30;:30;;;;1553:47517:165;4849:91:30;;;6959:1;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;4977:67:30;;1553:47517:165;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:47517:165;;:::i;:::-;2224:17;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3676:10:40;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;6891:76:30;;:::i;:::-;;;:::i;:::-;4803:15:165;:19;2288:3;;4861:21;;2288:3;;4928:32;;;2288:3;;;5209:2;5173:32;;;;:::i;:::-;2288:3;5153:58;;2288:3;;;1553:47517;;;;;;;;;;;;;;;;;:::i;:::-;2288:3;1553:47517;;2288:3;;;;;;2303:62:29;;:::i;:::-;1553:47517:165;;1800:178:73;;;;;;;1553:47517:165;;;1800:178:73;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;48493:24;1553:47517;;;;;;;48493:24;5367:17;;:::i;:::-;2288:3;1553:47517;2288:3;;5345:19;;1553:47517;3652:7:40;2288:3:165;;;1553:47517;2288:3;;;;1553:47517;2288:3;;;;;;;;;;;;;;;;;;1553:47517;;;;;;:::i;:::-;2288:3;;;-1:-1:-1;;;;;1553:47517:165;;;5417:52;;;2288:3;;;1553:47517;;;5417:52;;;;2288:3;;;5394:20;;;1553:47517;;;;;;-1:-1:-1;;;;;;1553:47517:165;;;;;;;2288:3;;;1553:47517;;;;;;;;2288:3;;;1553:47517;;;;;;;;;;2203:1:169;5479:25:165;;;2203:1:169;1553:47517:165;;:::i;:::-;;2383:18:169;1553:47517:165;;;;;;:::i;:::-;1855:13:169;1553:47517:165;;23096:89:169;1553:47517:165;5667:22;;;1553:47517;;-1:-1:-1;;;;;;2203:1:169;;;;;1553:47517:165;;;;;;;;;:::i;:::-;;;;5754:65;;;1553:47517;;;5754:65;1553:47517;5735:16;;;1553:47517;2288:3;2203:1:169;;1553:47517:165;2203:1:169;;;1553:47517:165;5829:33;;;2203:1:169;;-1:-1:-1;;2203:1:169;1553:47517:165;;;2203:1:169;;;1553:47517:165;;-1:-1:-1;;;5933:37:165;;1553:47517;;;;;5933:37;;;;;;;;5927:43;5933:37;;;;;5927:43;;:::i;:::-;2366:5;;;;;;;;;;5980:48;;;1553:47517;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;2446:3;;6260:213;6098:49;;;;6290:37;6098:49;1553:47517;6098:49;;1553:47517;;;;;;;:::i;:::-;;;2446:3;;;1553:47517;;2446:3;;;1553:47517;;;;2446:3;:::i;:::-;4803:15;;1553:47517;;2446:3;;:::i;:::-;6290:37;;6260:213;:::i;:::-;5064:101:30;;1553:47517:165;;;5064:101:30;1553:47517:165;5140:14:30;1553:47517:165;-1:-1:-1;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;5140:14:30;1553:47517:165;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;1553:47517;;2288:3;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;1553:47517;;2288:3;5933:37;1553:47517;;;;;;;;;2288:3;-1:-1:-1;;;2288:3:165;;1553:47517;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47517;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47517;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47517;2288:3;;1553:47517;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;3676:10:40;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;4977:67:30;-1:-1:-1;;;;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1553:47517: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:47517:165;;;;;;;;;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1553:47517:165;4815:4:60;4807:23;4803:145;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1553:47517:165;;4908:29:60;1553:47517:165;-1:-1:-1;1553:47517:165;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1553:47517:165;4392:4:60;4384:23;;;:120;;;;1553:47517:165;4367:251:60;;;2303:62:29;;:::i;:::-;1553:47517:165;;-1:-1:-1;;;5865:52:60;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;5865:52:60;;;;;;;;1553:47517:165;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1553:47517: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:47517:165;;-1:-1:-1;;;;;;1553:47517:165;;;;;2407:36:53;;;;1553:47517:165;;;;2458:15:53;:11;;4065:25:66;;1553:47517:165;4107:55:66;4065:25;;;;;;;1553:47517:165;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1553:47517:165;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1553:47517:165;;6159:70:53;-1:-1:-1;;;6199:19:53;;1553:47517:165;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1553:47517:165;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1553:47517:165;;;6026:34:60;;5865:52;;;;1553:47517:165;5865:52:60;;1553:47517:165;5865:52:60;;;;;;1553:47517:165;5865:52:60;;;:::i;:::-;;;1553:47517:165;;;;;5865:52:60;;;;1553:47517:165;-1:-1:-1;1553:47517:165;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1553:47517:165;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;4462:42:60;;;-1:-1:-1;4384:120:60;;;1553:47517:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;2971:9:37;2967:62;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;3627:22:37;1553:47517:165;;;966:10:34;1553:47517:165;;3627:22:37;1553:47517:165;;2967:62:37;-1:-1:-1;;;3003:15:37;;1553:47517:165;3003:15:37;;1553:47517:165;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;20673:23;;1553:47517;;-1:-1:-1;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28092:37:169;-1:-1:-1;;;;;;;;;;;1553:47517:165;28113:15:169;28092:37;;:::i;:::-;1553:47517:165;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;29218:36:165;1553:47517;;;;29218:36;:::i;:::-;-1:-1:-1;;;;;;1553:47517:165;;;;29305:70;1553:47517;;;;29342:10;;29305:70;-1:-1:-1;;;;;;;;;;;1553:47517:165;12568:23;;1553:47517;-1:-1:-1;;;;;1553:47517:165;29265:134;;;;;1553:47517;;-1:-1:-1;;;29265:134:165;;-1:-1:-1;;;;;1553:47517:165;;;;29265:134;;1553:47517;;;;;;;;;;;;;;;;;;29265:134;1553:47517;;29265:134;;;;;;;;;1553:47517;;;;;;;;29305:70;;;1553:47517;;;;;;;;;;;;;;3980:23:40;;:::i;1553:47517:165:-;;;;;;;;;;;;;;11456:22;-1:-1:-1;;;;;;;;;;;1553:47517:165;11456:22;1553:47517;;;;;;;;;;;;;;;;;;;;;19500:51;-1:-1:-1;;;;;;;;;;;1553:47517:165;19500:51;1553:47517;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;2303:62:29;;:::i;:::-;1553:47517:165;;20991:51;-1:-1:-1;;;;;;;;;;;1553:47517:165;20991:51;1553:47517;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;31261:36:165;1553:47517;;;;31261:36;:::i;:::-;31349:32;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;31397:96;;;;;;1553:47517;;;;;;;;;;;;31397:96;;1553:47517;;;;;;;;31437:4;;31417:10;1553:47517;31397:96;;;:::i;:::-;;;;;;;;;1553:47517;-1:-1:-1;;1553:47517:165;;-1:-1:-1;;;31529:79:165;;31417:10;1553:47517;31529:79;;1553:47517;31437:4;1553:47517;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;31529:79;;;;;;;;;;;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;31724:70;1553:47517;;;;31417:10;;31724:70;;-1:-1:-1;;;;;;;;;;;1553:47517:165;31349:20;12568:23;1553:47517;-1:-1:-1;;;;;1553:47517:165;31667:236;;;;;1553:47517;;-1:-1:-1;;;31667:236:165;;-1:-1:-1;;;;;1553:47517:165;;;;31667:236;;1553:47517;;;;;;;;;;;;;;31667:236;1553:47517;;;31667:236;;;;;;;;;;1553:47517;;;;;;;;31724:70;;;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;31529:79;;;;1553:47517;31529:79;1553:47517;31529:79;;;;;;;:::i;:::-;;;;;1553:47517;;;;;;;;;31397:96;;;;;:::i;:::-;1553:47517;;31397:96;;;;1553:47517;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;:::i;:::-;1944:72:37;;;:::i;:::-;33329:37:165;1553:47517;;;;33329:37;:::i;:::-;-1:-1:-1;;;;;;1553:47517:165;;;;33417:70;1553:47517;;;;33454:10;;33417:70;;33377:136;;;;;1553:47517;;-1:-1:-1;;;33377:136:165;;-1:-1:-1;;;;;1553:47517:165;;;;33377:136;;1553:47517;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;33377:136;1553:47517;-1:-1:-1;33377:136:165;;;;;;;;1553:47517;33377:136;;;33417:70;1553:47517;;;;;;;33377:136;1553:47517;33377:136;;;:::i;:::-;1553:47517;33377:136;;;1553:47517;;;;;;;;;33417:70;;;;1553:47517;;;;;;-1:-1:-1;;1553:47517:165;;;;2303:62:29;;:::i;:::-;1553:47517:165;;21388:52;-1:-1:-1;;;;;;;;;;;1553:47517:165;21388:52;1553:47517;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;19165:42;-1:-1:-1;;;;;;;;;;;1553:47517:165;19165:42;1553:47517;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;-1:-1:-1;;;;;1553:47517:165;;;;;;-1:-1:-1;;1553:47517:165;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;-1:-1:-1;;1553:47517:165;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47517:165;;;;:::o;2224:17::-;1553:47517;;;;;;;:::i;:::-;2224:17;1553:47517;;-1:-1:-1;;;1553:47517:165;2224:17;;;:::o;2288:3::-;;;;;;;;;;:::o;:::-;1553:47517;;;2288:3;;;;;;;;;;;;;;;:::o;:::-;1553:47517;;;2288:3;;;;;;;;2203:1:169;;;;;;;;;;1553:47517:165;;;;;;;2203:1:169;:::o;:::-;1553:47517:165;;2203:1:169;;;;;;;;:::o;2366:5:165:-;;;;;;;;;;;;;;;;:::o;2446:3::-;;;;;;;;;;;1553:47517;;;;:::i;:::-;2446:3;;;1553:47517;;;2446:3;;;1553:47517;2446:3;;;:::o;:::-;-1:-1:-1;;;;;2446:3:165;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:47517;;;;;;;:::i;:::-;2446:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:47517;;;;;:::i;:::-;2446:3;;;;;;;;1553:47517;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;14365:375::-;28092:37:169;-1:-1:-1;;;;;;;;;;;1553:47517:165;28113:15:169;28092:37;;:::i;:::-;14617:22:165;;;1553:47517;14569:22;;;;;;14722:11;;;;1553:47517;14365:375;:::o;14593:3::-;14640:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47517:165;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;14616:39;14612:90;;1553:47517;;14554:13;;14612:90;14675:12;;;;1553:47517;14675:12;:::o;1553:47517::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;:::o;2670:66::-;;;;;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1553:47517:165;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;1553:47517:165;;;;;;;-1:-1:-1;;;;;1553:47517: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:47517:165;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517: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:47517:165;;-1:-1:-1;2763:40:29;2709:128:37;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;38843:934:165;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;39019:19;;;;1553:47517;39019:38;1553:47517;;;;;39112:19;;;1553:47517;;;;;;;;;;;;;;39150:24;39112:62;1553:47517;;3543:209:25;1553:47517:165;3543:209:25;1553:47517:165;3543:209:25;1553:47517:165;;3543:209:25;1553:47517:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1651:6:167;1052:614:22;1553:47517:165;1052:614:22;1888:66:167;4093:83:22;;1998:66:167;1553:47517:165;4093:83:22;;;2108:66:167;1553:47517: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;;;39572:4:165;4536:2:167;1553:47517:165;4437:66:167;;;;;4436:103;4416:6;4093:83:22;;;4592:66:167;4584:6;4093:83:22;;;39449:135:165;4670:150:167;;;;;;1553:47517:165;;;;;;;-1:-1:-1;1553:47517:165;39595:28;;;1553:47517;;;;-1:-1:-1;1553:47517:165;;39652:33;;;:35;1553:47517;;39652:35;:::i;:::-;1553:47517;;;;-1:-1:-1;;;;;1553:47517:165;;;;39703:32;;1553:47517;;39703:32;39746:24;38843:934;:::o;1553:47517::-;;;;;;;;;38843:934;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;39019:19;31292:4;39019:19;;1553:47517;39019:38;1553:47517;;;-1:-1:-1;1553:47517:165;39112:19;;;1553:47517;;;;-1:-1:-1;1553:47517:165;;;;;;;;;39150:24;39112:62;1553:47517;;3543:209:25;-1:-1:-1;3543:209:25;1553:47517:165;3543:209:25;1553:47517:165;-1:-1:-1;3543:209:25;1553:47517:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1545:4:168;1052:614:22;1553:47517:165;1052:614:22;2041:66:168;4093:83:22;;39511:4:165;1052:614:22;1553:47517:165;2187:66:168;2186:105;1553:47517:165;4093:83:22;;;2342:66:168;1553:47517:165;4093:83:22;;;-1:-1:-1;2420:150:168;;;;;;1553:47517:165;;;;;;;-1:-1:-1;1553:47517:165;39595:28;;;1553:47517;;;;-1:-1:-1;1553:47517:165;;39652:33;;;:35;1553:47517;;39652:35;:::i;23318:229:169:-;1553:47517:165;;:::i;:::-;;;23496:12:169;15374:24:83;15370:103;;1553:47517:165;837:15:87;14374:24:83;14370:103;;1553:47517:165;;;;;:::i;:::-;23466:1:169;1553:47517:165;;;23496:12:169;1553:47517:165;23434:106:169;;;1553:47517:165;;837:15:87;1553:47517:165;;23434:106:169;;1553:47517:165;23318:229:169;:::o;14370:103:83:-;15421:41;;;23466:1:169;14421:41:83;14452:2;14421:41;1553:47517:165;837:15:87;1553:47517:165;;;23466:1:169;14421:41:83;15370:103;15421:41;;;23466:1:169;15421:41:83;15452:2;15421:41;1553:47517:165;23496:12:169;1553:47517:165;;;23466:1:169;15421:41:83;1553:47517:165;;;;;;;;;;;:::o;:::-;;;;;;;;;;46525:1421;;;;2203:1:169;;47225:25:165;;;;2203:1:169;;;1145:66:27;;1837:24:26;;:71;;;;46525:1421:165;1553:47517;;;;;2203:1:169;1553:47517:165;;2203:1:169;1553:47517:165;;;;1705:1673:171;;;;;;;;;;;;;;;;;;;-1:-1:-1;1705:1673:171;;;;;;;47385:52:165;;;1553:47517;;-1:-1:-1;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;-1:-1:-1;47548:3:165;47523:16;;;1553:47517;;47519:27;;;;;-1:-1:-1;1553:47517:165;;;47225:25;1553:47517;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;47621:15;;1553:47517;;;;;;;-1:-1:-1;;1553:47517:165;;;;;47504:13;;47519:27;;;;-1:-1:-1;47723:3:165;1553:47517;;47696:25;;;;;1553:47517;;-1:-1:-1;;;;;47763:17:165;1553:47517;47763:17;;:::i;:::-;2288:3;1553:47517;;;;;;;-1:-1:-1;1553:47517:165;;47794:15;;1553:47517;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;47681:13;;47696:25;;;47523:16;47848;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;-1:-1:-1;;;1553:47517:165;;;;47225:25;1553:47517;;;;;;;;;;;47676:163;1553:47517;;;-1:-1:-1;1553:47517:165;47225:25;-1:-1:-1;1553:47517:165;-1:-1:-1;1553:47517:165;;;;;;47891:28;;;;;;1553:47517;46525:1421::o;1553:47517::-;2288:3;;-1:-1:-1;;;;;1553:47517:165;;;;;47225:25;1553:47517;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;-1:-1:-1;1553:47517:165;;;;;;:::i;:::-;;;;1705:1673:171;;-1:-1:-1;1705:1673:171;;;;1553:47517:165;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22293:532:169;22418:12;-1:-1:-1;;2288:3:165;;;22293:532:169;;2288:3:165;;;;1553:47517;;22418:12:169;22458:22;;22418:12;;22458:50;1553:47517:165;22458:50:169;;22542:8;;;;;;22518:278;-1:-1:-1;1553:47517:165;;-1:-1:-1;;22293:532:169:o;22523:17::-;22581:12;;22611:11;;;;;-1:-1:-1;22433:1:169;;-1:-1:-1;;;22642:11:169:o;22607:119::-;22678:8;22674:52;;-1:-1:-1;;1553:47517:165;22523:17:169;;22674:52;22706:5;;22458:50;22487:21;22418:12;;22487:21;:::i;:::-;22458:50;;;1553:47517:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;:::o;39783:683::-;;39911:22;;;39944:1;39911:22;;;;:::i;:::-;:34;;;1553:47517;;39988:22;;;;:::i;:::-;:34;;;39984:177;;40215:22;;;:::i;:::-;1553:47517;;;;;;;;;;;;;;;;;;40305:23;;;;;:::i;:::-;2366:5;;;;1553:47517;2366:5;;;;;45606:2;2366:5;;;;;;;45652:36;;;;;;:::i;:::-;45698:18;1553:47517;45732:13;1553:47517;;45867:28;1553:47517;;;;;;45867:28;;45727:685;45767:3;45747:18;;;;;;1553:47517;;;;;;;;;;;;;;45896:18;;;:::i;:::-;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;45867:53;1553:47517;;;39911:22;45990:25;;-1:-1:-1;;;;;45990:25:165;;;:::i;:::-;1553:47517;45990:30;;:72;;;45767:3;45986:144;;45767:3;-1:-1:-1;;;;;46177:18:165;;;:::i;:::-;1553:47517;;-1:-1:-1;;;46169:76:165;;45606:2;46169:76;;;1553:47517;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;;;:::i;:::-;;;;;;45606:2;1553:47517;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;;;;;;45606:2;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45606:2;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;41449:51;1553:47517;;;;;;;;;;;;45606:2;1553:47517;;;;;;;;;;;;;;;;;;;;;;;46169:76;;;;;;;45606:2;46169:76;;-1:-1:-1;;;;;46169:76:165;;;;1553:47517;;46169:76;;;;;;;;1553:47517;46169:76;;;1553:47517;4093:83:22;;45606:2:165;4093:83:22;39944:1:165;4093:83:22;;;;1553:47517:165;45767:3;1553:47517;45732:13;;;46169:76;;;45606:2;46169:76;;;;;;;;;1553:47517;46169:76;;;:::i;:::-;;;1553:47517;;;;;39944:1;46169:76;;;;;-1:-1:-1;46169:76:165;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;45606:2;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;:::i;:::-;;45606:2;1553:47517;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;;;;;45606:2;1553:47517;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;39911:22;1553:47517;;;:::i;:::-;;;;;;;;;;39911:22;1553:47517;;;;;;;;;;;;;;;;;;45606:2;1553:47517;;;;;;;;39944:1;1553:47517;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39944:1;1553:47517;;;;;;;;;;;45606:2;1553:47517;;;:::i;:::-;;45606:2;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;;;;;;;;45986:144;46090:25;;;;;:::i;:::-;45986:144;;;45990:72;46025:37;;1553:47517;46025:37;;;:::i;:::-;46024:38;45990:72;;45747:18;;;;;;;;;;45606:2;45747:18;;1083:131:25;40364:16:165;;1553:47517;;40345:36;45606:2;1553:47517;;;;;40345:36;1553:47517;3543:209:25;45606:2:165;3543:209:25;1553:47517:165;;3543:209:25;39783:683:165;:::o;39984:177::-;40130:20;;;40137:13;40130:20;:::o;1553:47517::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;41916:1705::-;42046:24;;;42081:1;42046:24;;;;:::i;:::-;:36;;;1553:47517;;42127:24;;;;:::i;:::-;:36;;;42123:179;;42358:24;;;;:::i;:::-;1553:47517;;;;;;;;;;;;;;;;;;42404:21;;;;;42428;42404;;;:::i;:::-;42428;;;1553:47517;42428:21;;;;:::i;:::-;1553:47517;;;42404:45;1553:47517;;;42507:21;;;:::i;:::-;1553:47517;42532:29;;;;1553:47517;42428:21;1553:47517;;;;42507:54;1553:47517;;42718:46;1553:47517;42742:21;42638:46;42662:21;;;;:::i;:::-;1553:47517;42638:46;;:::i;:::-;42742:21;;:::i;:::-;1553:47517;42718:46;;:::i;:::-;-1:-1:-1;1553:47517:165;;;42886:31;;;1553:47517;42955:32;;;;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;43054:19;;;;1553:47517;;;;42428:21;;1553:47517;42942:144;43023:62;42428:21;43054:19;;1553:47517;43054:19;:::i;:::-;:31;1553:47517;43023:62;;:::i;:::-;43054:19;1553:47517;;;;;;;;;42942:144;;;;;;1553:47517;;;;;42942:144;;;;;;;1553:47517;42942:144;;;41916:1705;1553:47517;;;;;43054:19;1553:47517;-1:-1:-1;;;43176:185:165;;-1:-1:-1;;;;;1553:47517:165;;;42942:144;43176:185;;1553:47517;;;;;;;;42428:21;43321:26;;;1553:47517;42942:144;1553:47517;;;;43176:185;1553:47517;-1:-1:-1;43176:185:165;;;;;;;;1553:47517;43176:185;;;41916:1705;43462:19;;;;;:::i;:::-;43483:21;;;;:::i;:::-;1553:47517;43054:19;1553:47517;;;;;43413:92;;43054:19;42942:144;43413:92;;1553:47517;;;;;;;;;;;;;;;;;;;;42428:21;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;42955:32;1553:47517;;;;;;;42404:21;42942:144;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;42428:21;1553:47517;;;;;;;;;;;43176:185;1553:47517;;;;43054:19;1553:47517;;;;;;;;:::i;:::-;;;;;;;;;;;43413:92;;;;;;;;;1553:47517;43413:92;;;1553:47517;43592:21;;;;:::i;:::-;43054:19;1553:47517;18032:70:169;42428:21:165;18032:70:169;;1553:47517:165;;;43054:19;1553:47517;;;2288:3;1553:47517;;;;;;42404:21;1553:47517;;;18032:70:169;;;;;;;:::i;:::-;1553:47517:165;18022:81:169;;41916:1705:165;:::o;43413:92::-;;;;42428:21;43413:92;;42428:21;43413:92;;;;;;1553:47517;43413:92;;;:::i;:::-;;;1553:47517;;;;;;43592:21;43413:92;;;;;-1:-1:-1;43413:92:165;;1553:47517;;;;;;;43054:19;1553:47517;42081:1;1553:47517;;;;;;;;;:::i;:::-;;;;42428:21;1553:47517;;;42428:21;1553:47517;;;;;;;;;;;;;;;;43176:185;;;;;42428:21;43176:185;;42428:21;43176:185;;;;;;1553:47517;43176:185;;;:::i;:::-;;;1553:47517;;;;;;;43462:19;43176:185;;;;;-1:-1:-1;43176:185:165;;1553:47517;;;;;;42942:144;1553:47517;;42942:144;;;;42428:21;42942:144;42428:21;42942:144;;;;;;;:::i;:::-;;;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;:::o;43688:1657::-;;43821:27;;;43859:1;43821:27;;;;:::i;:::-;:39;;;1553:47517;;43908:27;;;;:::i;:::-;:39;;;43904:182;;44145:27;;;:::i;:::-;1553:47517;;;;;;;;;;;;;;;;;;44194:22;;;;;;;;:::i;:::-;:33;;;1553:47517;;;44361:29;;;1553:47517;;;;44343:15;:47;:15;;:47;:::i;:::-;44342:72;44394:16;;;1553:47517;44342:72;;;:::i;:::-;44433:20;;;;1553:47517;2670:66;43859:1;2670:66;;;;;;;44433:43;;1553:47517;;44567:43;;44535:75;44567:43;;:::i;:::-;44535:75;;:::i;:::-;44662:25;44647:40;44662:25;;;1553:47517;44647:40;;:::i;:::-;44343:15;44628:59;1553:47517;;44806:34;;;:::i;:::-;44343:15;;1553:47517;44858:28;;1553:47517;44858:46;1553:47517;;;44998:217;45098:45;;;;;2446:3;;45098:45;;;;:::i;:::-;45157:22;;;;;;:::i;:::-;1553:47517;;;2446:3;1553:47517;2446:3;;:::i;:::-;1553:47517;;2446:3;;:::i;:::-;1553:47517;;2446:3;;:::i;:::-;44998:217;;:::i;:::-;45231:47;1553:47517;45098:45;1553:47517;;;;45231:47;1553:47517;;;;;;;45098:45;1553:47517;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;45098:45;1553:47517;;;;44194:22;1553:47517;;;18426:30:169;2203:1;1553:47517:165;2203:1:169;;18476:32;;2203:1;1553:47517:165;45098:45;1553:47517;18392:206:169;;;1553:47517:165;18392:206:169;;1553:47517:165;;;45098:45;1553:47517;;;44194:22;1553:47517;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47517:165;;18392:206:169;;;;;;1553:47517:165;18392:206:169;;;:::i;1553:47517:165:-;;;-1:-1:-1;;;;;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;43859:1;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24038:3813:169;;;;;;1553:47517:165;32036:29:169;;;1553:47517:165;;;;32068:22:169;24407:15;32068:22;;:::i;:::-;32036:77;32068:45;32093:16;;;1553:47517:165;32068:45:169;;;:::i;:::-;32036:77;;:::i;:::-;24437:15;;;;;;:82;;24038:3813;24433:676;;;24543:35;;;1553:47517:165;;24628:25:169;;;;:::i;:::-;:39;1553:47517:165;;25203:24:169;24433:676;;25203:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1553:47517:165;3226:200:80;25268:4:169;3226:200:80;;32036:29:169;3226:200:80;32093:16:169;3226:200:80;;1553:47517:165;3226:200:80;1553:47517:165;32036:29:169;1553:47517:165;;;;;25331:37:169;;;25392:23;;32036:19;25392:23;;1553:47517:165;;;;;;;2446:3;1553:47517;;:::i;:::-;2446:3;;;:::i;:::-;1553:47517;3226:200:80;1553:47517:165;;25523:23:169;1553:47517:165;;25713:240:169;1553:47517:165;26234:272:169;25713:240;;;3226:200:80;25713:240:169;;;;;;;1553:47517:165;32036:19:169;1553:47517:165;;26323:32:169;;1553:47517:165;26234:272:169;;:::i;1553:47517:165:-;;;;;;;;;;;;;;;;;;25327:2495:169;1553:47517:165;;;32036:19:169;26527:37;26523:1299;;25327:2495;;;;;1553:47517:165;24038:3813:169;:::o;26523:1299::-;26600:199;26637:15;26677:25;26637:15;;;;;1553:47517:165;26677:25:169;;1553:47517:165;;-1:-1:-1;;;;;1553:47517:165;;;;;26600:199:169;;:::i;:::-;26814:27;1553:47517:165;26861:13:169;27057:14;1553:47517:165;27057:14:169;;26856:929;26900:3;26876:22;;;;;;3927:8:77;3871:27;2446:3:165;1553:47517;;;;;;;;:::i;2446:3::-;3871:27:77;;:::i;3927:8::-;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;27053:718:169;;26900:3;;32036:19;26900:3;26861:13;1553:47517:165;26861:13:169;;27053:718;-1:-1:-1;;;;;2780:163:73;1553:47517:165;2780:163:73;;;2113:66:165;1553:47517;2780:163:73;;;;3327:69:76;;27416:50:169;;;27494:8;32036:19;27494:8;;;27412:223;3556:68:76;32036:19:169;27661:17;3556:68:76;;;27661:17:169;:::i;:::-;:30;;;;27657:96;;27053:718;;;27657:96;27719:11;;;;;;;32036:19;27719:11;:::o;26876:22::-;;;;;;;;1553:47517:165;27799:12:169;:::o;1553:47517:165:-;;;;;;;;;;;;;;;;;;24433:676:169;24407:15;;;;;;24902:21;;1553:47517:165;;25203:24:169;24960:69;;;24433:676;;;;24960:69;24999:15;;24960:69;;;1553:47517:165;;;;;;;;;24437:82:169;24487:32;24474:45;24487:32;;;1553:47517:165;24474:45:169;;:::i;:::-;24407:15;24456:63;24437:82;;30885:456;-1:-1:-1;;;;;30885:456:169;;1553:47517:165;;;;31194:24:169;;;;:::i;:::-;1553:47517:165;;;;;;31306:5:169;1553:47517:165;;31319:1:169;1553:47517:165;30885:456:169;:::o;4016:191:40:-;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1553:47517:165;;4107:92:40;;;;1553:47517:165;1959:95:40;1553:47517:165;;;1959:95:40;;1553:47517:165;1959:95:40;;;1553:47517:165;4170:13:40;1959:95;;;1553:47517:165;4193:4:40;1959:95;;;1553:47517:165;1959:95:40;4107:92;;;;;;:::i;28801:312:169:-;;28924:37;28801:312;28924:37;;:::i;:::-;;;;28984;;28977:44;:::o;28920:187::-;29059:37;;29052:44;:::o;7082:141:30:-;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517: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;1553:47517:165;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;;;;;;;:::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;31526:179:169:-;31678:16;31640:34;31639:59;31526:179;1553:47517:165;31645:29:169;;;1553:47517:165;;;;31640:34:169;;:::i;:::-;31678:16;;1553:47517:165;31639:59:169;;:::i;28342:322::-;28462:50;28496:15;28462:50;;:::i;:::-;28496:15;;;28535:37;;28528:44;:::o;28458:200::-;28610:37;;28603: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:47517:165;425:3:20;1553:47517:165;;;4003:1:27;2933;2929:5;;1553:47517:165;425:3:20;4492:84:22;;;4093:83;2670:66:165;4093:83:22;;;4003:1:27;1553:47517: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:47517:165;-1:-1:-1;;;;;1553:47517:165;;;6084:3:20;1553:47517:165;;6062:44:20;1145:66:27;;;1860::20;1553:47517:165;1860:66:20;;1553:47517:165;6037:2:20;1553:47517:165;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1553:47517:165;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1553:47517:165;4093:83:22;;1553:47517:165;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1553:47517:165;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1553:47517:165;1640:140:24;3543:209:25;1553:47517:165;3543:209:25;648:2:20;3543:209:25;1553:47517:165;;;;;6037:2:20;1553:47517:165;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1553:47517:165;8070:12:20;:::o;32460:467:169:-;1553:47517:165;;:::i;:::-;-1:-1:-1;32764:51:169;;;1553:47517:165;32882:27:169;;;1553:47517:165;;;;;;;;32835:15:169;;-1:-1:-1;;;;;1553:47517:165;;;;:::i;:::-;;;;:::i;:::-;;;32623:297:169;;;2288:3:165;32835:15:169;1553:47517:165;:::i;:::-;;32623:297:169;;1553:47517:165;32623:297:169;;;1553:47517:165;32460:467:169;:::o;5203:1551:77:-;;;6283:66;6270:79;;6266:164;;1553:47517:165;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1553:47517: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:47517:165;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1553:47517:165;7462:38:77;;1553:47517:165;;7523:23:77;;;7375:20;7523:23;1553:47517:165;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1553:47517: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:47517:165;;;7375:20:77;7763:32;6928:687:40;1553:47517:165;;:::i;:::-;;;;7100:22:40;;;;1553:47517:165;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1553:47517:165;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1553:47517:165;;:::i;:::-;;;;8017:25:40;;;;1553:47517:165;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1553:47517:165;8411:18:40;;;;8449:20;:::o;29520:863:169:-;;29766:54;29688;;;1553:47517:165;29766:54:169;;1553:47517:165;29894:10:169;;;1553:47517:165;;29965:9:169;;;;29997;;;;;30029;;;30130:14;;;;;29520:863;1553:47517:165;;;30346:30:169;;;30339:37;;29520:863;:::o;30346:30::-;30361:14;;29520:863;-1:-1:-1;29520:863:169:o;1553:47517:165:-;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;30130:14:169;;;;;1553:47517:165;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;2129:778:77;1553:47517: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;4437:582:66:-;;4609:8;;-1:-1:-1;1553:47517:165;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1553:47517: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:47517:165;;;;4933:24:66;1553:47517:165;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":10996,"length":32},{"start":11143,"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,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],((uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"b24fcac0","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\":\"head\",\"type\":\"bytes32\"}],\"name\":\"AnnouncesCommitted\",\"type\":\"event\"},{\"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\":[],\"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\":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\":\"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\":[{\"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\":{\"AnnouncesCommitted(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.\"}},\"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.\"}},\"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.\"},\"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,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],((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. `AnnouncesCommitted` 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 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 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\":{\"AnnouncesCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"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.\"},\"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\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0x0ec027c603c1617e7e76cdb19ae716d3797f90efb2cc253649b98775776d8280\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://85bc845aa757e2609af57d7b1cefdbc43f3d89189230e9d11b07c49d7106b5be\",\"dweb:/ipfs/QmQDySUQWR2UYFKp1xvL7QbZcpNn4kCtPyPJkLBFeTTBYA\"]},\"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\":\"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5\",\"dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX\"]},\"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":"head","type":"bytes32","indexed":false}],"type":"event","name":"AnnouncesCommitted","anonymous":false},{"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":[],"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":"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":"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":"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,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],((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. `AnnouncesCommitted` 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 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 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":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0x0ec027c603c1617e7e76cdb19ae716d3797f90efb2cc253649b98775776d8280","urls":["bzz-raw://85bc845aa757e2609af57d7b1cefdbc43f3d89189230e9d11b07c49d7106b5be","dweb:/ipfs/QmQDySUQWR2UYFKp1xvL7QbZcpNn4kCtPyPJkLBFeTTBYA"],"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":"0x176d452626063ddd6b94feb5cf31a77224c2c3340c96ea9d61385fbe0653e7c3","urls":["bzz-raw://34dd903f9b2a3084b6bec070e763dc0c6ef4113ae937d5c9428a00c328d5efc5","dweb:/ipfs/QmQgJhtU7AqMvjDRgx8agvBHdAt3tRSeNqAEmWu42KFFZX"],"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":82325,"exportedSymbols":{"Clones":[82720],"ClonesSmall":[82804],"ECDSA":[51038],"EIP712Upgradeable":[44416],"FROST":[40965],"Gear":[84058],"Hashes":[41483],"IMiddleware":[74131],"IMirror":[74395],"IRouter":[74985],"IWrappedVara":[75001],"Memory":[41257],"NoncesUpgradeable":[43698],"OwnableUpgradeable":[42322],"PausableUpgradeable":[43858],"ReentrancyGuardTransientUpgradeable":[43943],"Router":[82324],"SSTORE2":[84514],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:48997:165","nodes":[{"id":79424,"nodeType":"PragmaDirective","src":"74:24:165","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":79426,"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":82325,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":79425,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79428,"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":82325,"sourceUnit":43699,"symbolAliases":[{"foreign":{"id":79427,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43698,"src":"210:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79430,"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":82325,"sourceUnit":43859,"symbolAliases":[{"foreign":{"id":79429,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43858,"src":"309:19:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79432,"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":82325,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":79431,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"417:35:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79434,"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":82325,"sourceUnit":44417,"symbolAliases":[{"foreign":{"id":79433,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44416,"src":"553:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79436,"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":82325,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":79435,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"665:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79438,"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":82325,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":79437,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"754:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79440,"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":82325,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":79439,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"835:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79442,"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":82325,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":79441,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"910:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79444,"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":82325,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":79443,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"986:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79446,"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":82325,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":79445,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"1039:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79448,"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":82325,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":79447,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"1100:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79450,"nodeType":"ImportDirective","src":"1166:48:165","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":82325,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":79449,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"1174:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79452,"nodeType":"ImportDirective","src":"1215:40:165","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":82325,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":79451,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"1223:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79454,"nodeType":"ImportDirective","src":"1256:40:165","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":82325,"sourceUnit":74986,"symbolAliases":[{"foreign":{"id":79453,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74985,"src":"1264:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79456,"nodeType":"ImportDirective","src":"1297:50:165","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":82325,"sourceUnit":75002,"symbolAliases":[{"foreign":{"id":79455,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"1305:12:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79458,"nodeType":"ImportDirective","src":"1348:48:165","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":82325,"sourceUnit":82721,"symbolAliases":[{"foreign":{"id":79457,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82720,"src":"1356:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79460,"nodeType":"ImportDirective","src":"1397:58:165","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":82325,"sourceUnit":82805,"symbolAliases":[{"foreign":{"id":79459,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82804,"src":"1405:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79462,"nodeType":"ImportDirective","src":"1456:44:165","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82325,"sourceUnit":84059,"symbolAliases":[{"foreign":{"id":79461,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"1464:4:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79464,"nodeType":"ImportDirective","src":"1501:50:165","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":82325,"sourceUnit":84515,"symbolAliases":[{"foreign":{"id":79463,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84514,"src":"1509:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82324,"nodeType":"ContractDefinition","src":"1553:47517:165","nodes":[{"id":79481,"nodeType":"VariableDeclaration","src":"1849:106:165","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1874:12:165","scope":82324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1849:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":79480,"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":79484,"nodeType":"VariableDeclaration","src":"2068:111:165","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2093:17:165","scope":82324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2068:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":79483,"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":79487,"nodeType":"VariableDeclaration","src":"2186:55:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2210:11:165","scope":82324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79485,"name":"string","nodeType":"ElementaryTypeName","src":"2186:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":79486,"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":79490,"nodeType":"VariableDeclaration","src":"2247:44:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2271:14:165","scope":82324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79488,"name":"string","nodeType":"ElementaryTypeName","src":"2247:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":79489,"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":79493,"nodeType":"VariableDeclaration","src":"2298:73:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2323:40:165","scope":82324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79491,"name":"uint256","nodeType":"ElementaryTypeName","src":"2298:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":79492,"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":79496,"nodeType":"VariableDeclaration","src":"2377:72:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2402:41:165","scope":82324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79494,"name":"uint256","nodeType":"ElementaryTypeName","src":"2377:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":79495,"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":79499,"nodeType":"VariableDeclaration","src":"2592:144:165","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2617:42:165","scope":82324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":79498,"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":79507,"nodeType":"FunctionDefinition","src":"2811:53:165","nodes":[],"body":{"id":79506,"nodeType":"Block","src":"2825:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79503,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"2835:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79504,"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":79505,"nodeType":"ExpressionStatement","src":"2835:22:165"}]},"documentation":{"id":79500,"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":79501,"nodeType":"ParameterList","parameters":[],"src":"2822:2:165"},"returnParameters":{"id":79502,"nodeType":"ParameterList","parameters":[],"src":"2825:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79711,"nodeType":"FunctionDefinition","src":"4030:2502:165","nodes":[],"body":{"id":79710,"nodeType":"Block","src":"4445:2087:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":79536,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79510,"src":"4470:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79535,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4455:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4455:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79538,"nodeType":"ExpressionStatement","src":"4455:22:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79539,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43762,"src":"4487:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4487:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79541,"nodeType":"ExpressionStatement","src":"4487:17:165"},{"expression":{"arguments":[{"id":79543,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79487,"src":"4528:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79544,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79490,"src":"4541: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":79542,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"4514:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4514:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79546,"nodeType":"ExpressionStatement","src":"4514:42:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79547,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"4566:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4566:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79549,"nodeType":"ExpressionStatement","src":"4566:15:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79550,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"4591:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4591:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79552,"nodeType":"ExpressionStatement","src":"4591:33:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79554,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4803:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4809:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"4803:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4821:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4803:19:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79558,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74539,"src":"4824:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4824:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4795:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4795:48:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79561,"nodeType":"ExpressionStatement","src":"4795:48:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79563,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79520,"src":"4861:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4881:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4861:21:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79566,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74542,"src":"4884:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4884:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79562,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4853:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4853:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79569,"nodeType":"ExpressionStatement","src":"4853:57:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79571,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79518,"src":"4928:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79572,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79520,"src":"4943:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4928:32:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79574,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74545,"src":"4962:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4962:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79570,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4920:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79577,"nodeType":"ExpressionStatement","src":"4920:64:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79579,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79522,"src":"5153:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79580,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79518,"src":"5173:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":79581,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79520,"src":"5188:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5173:32:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79583,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5172:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":79584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5209:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5172:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5153:58:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79587,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74550,"src":"5213:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5213:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5145:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5145:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79590,"nodeType":"ExpressionStatement","src":"5145:92:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":79592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5264: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":79591,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82264,"src":"5248:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5248:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79594,"nodeType":"ExpressionStatement","src":"5248:42:165"},{"assignments":[79597],"declarations":[{"constant":false,"id":79597,"mutability":"mutable","name":"router","nameLocation":"5316:6:165","nodeType":"VariableDeclaration","scope":79710,"src":"5300:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79596,"nodeType":"UserDefinedTypeName","pathNode":{"id":79595,"name":"Storage","nameLocations":["5300:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"5300:7:165"},"referencedDeclaration":74490,"src":"5300:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79600,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79598,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"5325: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":79599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5325:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5300:34:165"},{"expression":{"id":79607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79601,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"5345:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5352:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"5345:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79604,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"5367:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5372:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83510,"src":"5367:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83046_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5367:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5345:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79608,"nodeType":"ExpressionStatement","src":"5345:39:165"},{"expression":{"id":79618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79609,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"5394:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5401:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"5394:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79614,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79512,"src":"5434:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79615,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79514,"src":"5443:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79616,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79516,"src":"5457: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":79612,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"5417:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5422:11:165","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":82922,"src":"5417:16:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$82922_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":79617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5417:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5394:75:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79619,"nodeType":"ExpressionStatement","src":"5394:75:165"},{"expression":{"id":79627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79620,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"5479:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5486:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"5479:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5505:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"5479:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79625,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"5526:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5531:30:165","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":82843,"src":"5526:35:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5479:82:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79628,"nodeType":"ExpressionStatement","src":"5479:82:165"},{"expression":{"id":79636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79629,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"5571:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5578:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"5571:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5597:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83146,"src":"5571:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79634,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"5620:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5625:32:165","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":82847,"src":"5620:37:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5571:86:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79637,"nodeType":"ExpressionStatement","src":"5571:86:165"},{"expression":{"id":79644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79638,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"5667:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5674:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"5667:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79641,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"5692:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5697:26:165","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":83487,"src":"5692:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$83038_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":79643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5692:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"5667:58:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":79645,"nodeType":"ExpressionStatement","src":"5667:58:165"},{"expression":{"id":79655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79646,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"5735:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5742:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"5735:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79651,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79518,"src":"5769:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79652,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79520,"src":"5783:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79653,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79522,"src":"5802: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":79649,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"5754:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5759:9:165","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"5754:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$83141_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":79654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5754:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"5735:84:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"id":79656,"nodeType":"ExpressionStatement","src":"5735:84:165"},{"expression":{"id":79667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79657,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"5829:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5836:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"5829:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5849:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83088,"src":"5829:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":79664,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79530,"src":"5872:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5884:6:165","memberName":"length","nodeType":"MemberAccess","src":"5872:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5865:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79662,"name":"uint16","nodeType":"ElementaryTypeName","src":"5865:6:165","typeDescriptions":{}}},"id":79666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5865:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5829:62:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79668,"nodeType":"ExpressionStatement","src":"5829:62:165"},{"assignments":[79670],"declarations":[{"constant":false,"id":79670,"mutability":"mutable","name":"decimalsFactor","nameLocation":"5910:14:165","nodeType":"VariableDeclaration","scope":79710,"src":"5902:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79669,"name":"uint256","nodeType":"ElementaryTypeName","src":"5902:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79678,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5927: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":79673,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79514,"src":"5946:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79672,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"5933:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75001_$","typeString":"type(contract IWrappedVara)"}},"id":79674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5933:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":79675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5960:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"5933:35:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5933:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5927:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5902:68:165"},{"expression":{"id":79687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79679,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"5980:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5987:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"5980:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6000:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83091,"src":"5980:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79684,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79493,"src":"6031:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79685,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79670,"src":"6074:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6031:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5980:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79688,"nodeType":"ExpressionStatement","src":"5980:108:165"},{"expression":{"id":79697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79689,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"6098:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6105:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"6098:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6118:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83094,"src":"6098:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79694,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79496,"src":"6150:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79695,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79670,"src":"6194:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6150:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6098:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79698,"nodeType":"ExpressionStatement","src":"6098:110:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":79700,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79597,"src":"6290:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6297:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"6290:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6316:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83149,"src":"6290:37:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"}},{"id":79703,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"6341:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":79704,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79527,"src":"6375:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79705,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79530,"src":"6423:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":79706,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6448:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6454:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"6448:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82899_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_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":79699,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82211,"src":"6260:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$82899_storage_ptr_$_t_struct$_AggregatedPublicKey_$82878_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":79708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:213:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79709,"nodeType":"ExpressionStatement","src":"6260:213:165"}]},"documentation":{"id":79508,"nodeType":"StructuredDocumentation","src":"2870:1155: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 aggregated public key of the initial validators. Will be used in future.\n @param _verifiableSecretSharingCommitment The 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":79533,"kind":"modifierInvocation","modifierName":{"id":79532,"name":"initializer","nameLocations":["4433:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"4433:11:165"},"nodeType":"ModifierInvocation","src":"4433:11:165"}],"name":"initialize","nameLocation":"4039:10:165","parameters":{"id":79531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79510,"mutability":"mutable","name":"_owner","nameLocation":"4067:6:165","nodeType":"VariableDeclaration","scope":79711,"src":"4059:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79509,"name":"address","nodeType":"ElementaryTypeName","src":"4059:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79512,"mutability":"mutable","name":"_mirror","nameLocation":"4091:7:165","nodeType":"VariableDeclaration","scope":79711,"src":"4083:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79511,"name":"address","nodeType":"ElementaryTypeName","src":"4083:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79514,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4116:12:165","nodeType":"VariableDeclaration","scope":79711,"src":"4108:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79513,"name":"address","nodeType":"ElementaryTypeName","src":"4108:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79516,"mutability":"mutable","name":"_middleware","nameLocation":"4146:11:165","nodeType":"VariableDeclaration","scope":79711,"src":"4138:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79515,"name":"address","nodeType":"ElementaryTypeName","src":"4138:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79518,"mutability":"mutable","name":"_eraDuration","nameLocation":"4175:12:165","nodeType":"VariableDeclaration","scope":79711,"src":"4167:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79517,"name":"uint256","nodeType":"ElementaryTypeName","src":"4167:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79520,"mutability":"mutable","name":"_electionDuration","nameLocation":"4205:17:165","nodeType":"VariableDeclaration","scope":79711,"src":"4197:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79519,"name":"uint256","nodeType":"ElementaryTypeName","src":"4197:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79522,"mutability":"mutable","name":"_validationDelay","nameLocation":"4240:16:165","nodeType":"VariableDeclaration","scope":79711,"src":"4232:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79521,"name":"uint256","nodeType":"ElementaryTypeName","src":"4232:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79525,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4300:20:165","nodeType":"VariableDeclaration","scope":79711,"src":"4266:54:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79524,"nodeType":"UserDefinedTypeName","pathNode":{"id":79523,"name":"Gear.AggregatedPublicKey","nameLocations":["4266:4:165","4271:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82878,"src":"4266:24:165"},"referencedDeclaration":82878,"src":"4266:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":79527,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4345:34:165","nodeType":"VariableDeclaration","scope":79711,"src":"4330:49:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79526,"name":"bytes","nodeType":"ElementaryTypeName","src":"4330:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":79530,"mutability":"mutable","name":"_validators","nameLocation":"4408:11:165","nodeType":"VariableDeclaration","scope":79711,"src":"4389:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79528,"name":"address","nodeType":"ElementaryTypeName","src":"4389:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79529,"nodeType":"ArrayTypeName","src":"4389:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4049:376:165"},"returnParameters":{"id":79534,"nodeType":"ParameterList","parameters":[],"src":"4445:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79806,"nodeType":"FunctionDefinition","src":"6852:3024:165","nodes":[],"body":{"id":79805,"nodeType":"Block","src":"6910:2966:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79721,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"9183:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9183:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79720,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"9168:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9168:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79724,"nodeType":"ExpressionStatement","src":"9168:23:165"},{"expression":{"arguments":[{"id":79726,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79487,"src":"9215:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79727,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79490,"src":"9228: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":79725,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"9201:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9201:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79729,"nodeType":"ExpressionStatement","src":"9201:42:165"},{"assignments":[79732],"declarations":[{"constant":false,"id":79732,"mutability":"mutable","name":"router","nameLocation":"9270:6:165","nodeType":"VariableDeclaration","scope":79805,"src":"9254:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79731,"nodeType":"UserDefinedTypeName","pathNode":{"id":79730,"name":"Storage","nameLocations":["9254:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"9254:7:165"},"referencedDeclaration":74490,"src":"9254:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79733,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"9279: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":79734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9279:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9254:34:165"},{"expression":{"id":79742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79736,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79732,"src":"9298:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9305:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"9298:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79739,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"9320:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9325:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83510,"src":"9320:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83046_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9320:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9298:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79743,"nodeType":"ExpressionStatement","src":"9298:39:165"},{"expression":{"id":79755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79744,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79732,"src":"9347:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9354:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"9347:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":79751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9416: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":79750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9408:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9408:7:165","typeDescriptions":{}}},"id":79752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9408:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":79753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9431: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":79747,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"9377:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9382:18:165","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":83032,"src":"9377:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$83032_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":79754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9402:4:165","9420:9:165"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"9377:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"9347:87:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79756,"nodeType":"ExpressionStatement","src":"9347:87:165"},{"expression":{"id":79771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79757,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79732,"src":"9444:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9451:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9444:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9464:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83088,"src":"9444:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":79766,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79732,"src":"9513: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":79764,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"9487:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9492:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83777,"src":"9487:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9487:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82895,"src":"9487:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9526:6:165","memberName":"length","nodeType":"MemberAccess","src":"9487:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9480:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79762,"name":"uint16","nodeType":"ElementaryTypeName","src":"9480:6:165","typeDescriptions":{}}},"id":79770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9480:53:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9444:89:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79772,"nodeType":"ExpressionStatement","src":"9444:89:165"},{"assignments":[79774],"declarations":[{"constant":false,"id":79774,"mutability":"mutable","name":"decimalsFactor","nameLocation":"9551:14:165","nodeType":"VariableDeclaration","scope":79805,"src":"9543:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79773,"name":"uint256","nodeType":"ElementaryTypeName","src":"9543:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79784,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9568: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":79777,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79732,"src":"9587:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9594:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"9587:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9608:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82918,"src":"9587:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79776,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"9574:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75001_$","typeString":"type(contract IWrappedVara)"}},"id":79780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9574:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":79781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9621:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"9574:55:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9574:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9568:63:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9543:88:165"},{"expression":{"id":79793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79785,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79732,"src":"9641:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9648:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9641:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9661:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83091,"src":"9641:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79790,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79493,"src":"9692:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79791,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79774,"src":"9735:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9692:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9641:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79794,"nodeType":"ExpressionStatement","src":"9641:108:165"},{"expression":{"id":79803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79795,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79732,"src":"9759:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9766:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9759:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9779:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83094,"src":"9759:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79800,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79496,"src":"9811:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79801,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79774,"src":"9855:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9811:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9759:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79804,"nodeType":"ExpressionStatement","src":"9759:110:165"}]},"documentation":{"id":79712,"nodeType":"StructuredDocumentation","src":"6538: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":79715,"kind":"modifierInvocation","modifierName":{"id":79714,"name":"onlyOwner","nameLocations":["6883:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6883:9:165"},"nodeType":"ModifierInvocation","src":"6883:9:165"},{"arguments":[{"hexValue":"35","id":79717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6907:1:165","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":79718,"kind":"modifierInvocation","modifierName":{"id":79716,"name":"reinitializer","nameLocations":["6893:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"6893:13:165"},"nodeType":"ModifierInvocation","src":"6893:16:165"}],"name":"reinitialize","nameLocation":"6861:12:165","parameters":{"id":79713,"nodeType":"ParameterList","parameters":[],"src":"6873:2:165"},"returnParameters":{"id":79719,"nodeType":"ParameterList","parameters":[],"src":"6910:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79816,"nodeType":"FunctionDefinition","src":"10041:84:165","nodes":[],"body":{"id":79815,"nodeType":"Block","src":"10123:2:165","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":79807,"nodeType":"StructuredDocumentation","src":"9882: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":79813,"kind":"modifierInvocation","modifierName":{"id":79812,"name":"onlyOwner","nameLocations":["10113:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"10113:9:165"},"nodeType":"ModifierInvocation","src":"10113:9:165"}],"name":"_authorizeUpgrade","nameLocation":"10050:17:165","overrides":{"id":79811,"nodeType":"OverrideSpecifier","overrides":[],"src":"10104:8:165"},"parameters":{"id":79810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79809,"mutability":"mutable","name":"newImplementation","nameLocation":"10076:17:165","nodeType":"VariableDeclaration","scope":79816,"src":"10068:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79808,"name":"address","nodeType":"ElementaryTypeName","src":"10068:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10067:27:165"},"returnParameters":{"id":79814,"nodeType":"ParameterList","parameters":[],"src":"10123:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79870,"nodeType":"FunctionDefinition","src":"10297:948:165","nodes":[],"body":{"id":79869,"nodeType":"Block","src":"10361:884:165","nodes":[],"statements":[{"assignments":[79825],"declarations":[{"constant":false,"id":79825,"mutability":"mutable","name":"router","nameLocation":"10387:6:165","nodeType":"VariableDeclaration","scope":79869,"src":"10371:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79824,"nodeType":"UserDefinedTypeName","pathNode":{"id":79823,"name":"Storage","nameLocations":["10371:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"10371:7:165"},"referencedDeclaration":74490,"src":"10371:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79828,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79826,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"10396: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":79827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10396:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10371:34:165"},{"assignments":[79833],"declarations":[{"constant":false,"id":79833,"mutability":"mutable","name":"validationSettings","nameLocation":"10450:18:165","nodeType":"VariableDeclaration","scope":79869,"src":"10415:53:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83165_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":79832,"nodeType":"UserDefinedTypeName","pathNode":{"id":79831,"name":"Gear.ValidationSettingsView","nameLocations":["10415:4:165","10420:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":83165,"src":"10415:27:165"},"referencedDeclaration":83165,"src":"10415:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83165_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":79839,"initialValue":{"arguments":[{"expression":{"id":79836,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"10483:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10490:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"10483:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":79834,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"10471:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10476:6:165","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":84057,"src":"10471:11:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$83153_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$83165_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":79838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10471:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83165_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"10415:94:165"},{"expression":{"arguments":[{"expression":{"id":79841,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"10566:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10573:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"10566:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":79843,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"10621:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10628:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"10621:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":79845,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"10677:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10684:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"10677:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":79847,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79833,"src":"10731:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83165_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":79848,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"10780:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10787:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"10780:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":79850,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"10827:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10834:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"10827:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":79852,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"10872:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10879:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"10872:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10892:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83082,"src":"10872:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79855,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"10940:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10947:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"10940:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10960:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83085,"src":"10940:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"11008: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":"11015:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11008:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11028:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83088,"src":"11008:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":79861,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"11085: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":"11092:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11085:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11105:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83091,"src":"11085:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79864,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79825,"src":"11178: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":"11185:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11178:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11198:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83094,"src":"11178:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$83165_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$83038_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$83141_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":79840,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74457,"src":"10526:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$74457_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":79867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10552:12:165","10599:20:165","10662:13:165","10711:18:165","10763:15:165","10816:9:165","10857:13:165","10919:19:165","10993:13:165","11055:28:165","11147:29:165"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee"],"nodeType":"FunctionCall","src":"10526:712:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":79822,"id":79868,"nodeType":"Return","src":"10519:719:165"}]},"baseFunctions":[74643],"documentation":{"id":79817,"nodeType":"StructuredDocumentation","src":"10150: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":"10306:11:165","parameters":{"id":79818,"nodeType":"ParameterList","parameters":[],"src":"10317:2:165"},"returnParameters":{"id":79822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79870,"src":"10341:18:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":79820,"nodeType":"UserDefinedTypeName","pathNode":{"id":79819,"name":"StorageView","nameLocations":["10341:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":74457,"src":"10341:11:165"},"referencedDeclaration":74457,"src":"10341:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"10340:20:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79882,"nodeType":"FunctionDefinition","src":"11381:109:165","nodes":[],"body":{"id":79881,"nodeType":"Block","src":"11439:51:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79876,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"11456: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":79877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11456:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11466:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"11456:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11479:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"11456:27:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79875,"id":79880,"nodeType":"Return","src":"11449:34:165"}]},"baseFunctions":[74649],"documentation":{"id":79871,"nodeType":"StructuredDocumentation","src":"11251: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":"11390:16:165","parameters":{"id":79872,"nodeType":"ParameterList","parameters":[],"src":"11406:2:165"},"returnParameters":{"id":79875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79882,"src":"11430:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11430:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11429:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79894,"nodeType":"FunctionDefinition","src":"11636:113:165","nodes":[],"body":{"id":79893,"nodeType":"Block","src":"11693:56:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79888,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"11710: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":79889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11710:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11720:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"11710:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11733:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"11710:32:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79887,"id":79892,"nodeType":"Return","src":"11703:39:165"}]},"baseFunctions":[74655],"documentation":{"id":79883,"nodeType":"StructuredDocumentation","src":"11496: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":"11645:16:165","parameters":{"id":79884,"nodeType":"ParameterList","parameters":[],"src":"11661:2:165"},"returnParameters":{"id":79887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79894,"src":"11685:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79885,"name":"uint48","nodeType":"ElementaryTypeName","src":"11685:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11684:8:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79906,"nodeType":"FunctionDefinition","src":"11911:125:165","nodes":[],"body":{"id":79905,"nodeType":"Block","src":"11977:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79900,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"11994: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":79901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11994:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12004:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"11994:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12025:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"11994:35:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79899,"id":79904,"nodeType":"Return","src":"11987:42:165"}]},"baseFunctions":[74661],"documentation":{"id":79895,"nodeType":"StructuredDocumentation","src":"11755: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":"11920:24:165","parameters":{"id":79896,"nodeType":"ParameterList","parameters":[],"src":"11944:2:165"},"returnParameters":{"id":79899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79906,"src":"11968:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11968:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11967:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79918,"nodeType":"FunctionDefinition","src":"12213:134:165","nodes":[],"body":{"id":79917,"nodeType":"Block","src":"12283:64:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79912,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"12300: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":79913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12300:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12310:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"12300:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12331:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83031,"src":"12300:40:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79911,"id":79916,"nodeType":"Return","src":"12293:47:165"}]},"baseFunctions":[74667],"documentation":{"id":79907,"nodeType":"StructuredDocumentation","src":"12042: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":"12222:29:165","parameters":{"id":79908,"nodeType":"ParameterList","parameters":[],"src":"12251:2:165"},"returnParameters":{"id":79911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79918,"src":"12275:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79909,"name":"uint48","nodeType":"ElementaryTypeName","src":"12275:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12274:8:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79930,"nodeType":"FunctionDefinition","src":"12499:106:165","nodes":[],"body":{"id":79929,"nodeType":"Block","src":"12551:54:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79924,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"12568: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":79925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12578:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"12568:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12592:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"12568:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79923,"id":79928,"nodeType":"Return","src":"12561:37:165"}]},"baseFunctions":[74673],"documentation":{"id":79919,"nodeType":"StructuredDocumentation","src":"12353: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":"12508:10:165","parameters":{"id":79920,"nodeType":"ParameterList","parameters":[],"src":"12518:2:165"},"returnParameters":{"id":79923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79922,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79930,"src":"12542:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79921,"name":"address","nodeType":"ElementaryTypeName","src":"12542:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12541:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79942,"nodeType":"FunctionDefinition","src":"12770:112:165","nodes":[],"body":{"id":79941,"nodeType":"Block","src":"12823:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79936,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"12840: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":79937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12840:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12850:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"12840:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12864:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82918,"src":"12840:35:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79935,"id":79940,"nodeType":"Return","src":"12833:42:165"}]},"baseFunctions":[74679],"documentation":{"id":79931,"nodeType":"StructuredDocumentation","src":"12611: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":"12779:11:165","parameters":{"id":79932,"nodeType":"ParameterList","parameters":[],"src":"12790:2:165"},"returnParameters":{"id":79935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79942,"src":"12814:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79933,"name":"address","nodeType":"ElementaryTypeName","src":"12814:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12813:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79954,"nodeType":"FunctionDefinition","src":"13042:110:165","nodes":[],"body":{"id":79953,"nodeType":"Block","src":"13094:58:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79948,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"13111: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":79949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13111:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13121:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"13111:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13135:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":82921,"src":"13111:34:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79947,"id":79952,"nodeType":"Return","src":"13104:41:165"}]},"baseFunctions":[74685],"documentation":{"id":79943,"nodeType":"StructuredDocumentation","src":"12888: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":"13051:10:165","parameters":{"id":79944,"nodeType":"ParameterList","parameters":[],"src":"13061:2:165"},"returnParameters":{"id":79947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79946,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79954,"src":"13085:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79945,"name":"address","nodeType":"ElementaryTypeName","src":"13085:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13084:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79969,"nodeType":"FunctionDefinition","src":"13345:175:165","nodes":[],"body":{"id":79968,"nodeType":"Block","src":"13440:80:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79963,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"13483: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":79964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13483: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":79961,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"13457:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13462:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83777,"src":"13457:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13457:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13494:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82883,"src":"13457:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":79960,"id":79967,"nodeType":"Return","src":"13450:63:165"}]},"baseFunctions":[74692],"documentation":{"id":79955,"nodeType":"StructuredDocumentation","src":"13158: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":"13354:29:165","parameters":{"id":79956,"nodeType":"ParameterList","parameters":[],"src":"13383:2:165"},"returnParameters":{"id":79960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79969,"src":"13407:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79958,"nodeType":"UserDefinedTypeName","pathNode":{"id":79957,"name":"Gear.AggregatedPublicKey","nameLocations":["13407:4:165","13412:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82878,"src":"13407:24:165"},"referencedDeclaration":82878,"src":"13407:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"13406:33:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79986,"nodeType":"FunctionDefinition","src":"13986:207:165","nodes":[],"body":{"id":79985,"nodeType":"Block","src":"14078:115:165","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79979,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"14134: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":79980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14134: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":79977,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"14108:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":79978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14113:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83777,"src":"14108:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14108:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14145:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82886,"src":"14108:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79975,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84514,"src":"14095:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84514_$","typeString":"type(library SSTORE2)"}},"id":79976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14103:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":84487,"src":"14095:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":79983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14095:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":79974,"id":79984,"nodeType":"Return","src":"14088:98:165"}]},"baseFunctions":[74698],"documentation":{"id":79970,"nodeType":"StructuredDocumentation","src":"13526: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":"13995:43:165","parameters":{"id":79971,"nodeType":"ParameterList","parameters":[],"src":"14038:2:165"},"returnParameters":{"id":79974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79986,"src":"14064:12:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":79972,"name":"bytes","nodeType":"ElementaryTypeName","src":"14064:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14063:14:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80033,"nodeType":"FunctionDefinition","src":"14365:375:165","nodes":[],"body":{"id":80032,"nodeType":"Block","src":"14447:293:165","nodes":[],"statements":[{"assignments":[79999],"declarations":[{"constant":false,"id":79999,"mutability":"mutable","name":"_currentValidators","nameLocation":"14481:18:165","nodeType":"VariableDeclaration","scope":80032,"src":"14457:42:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":79998,"nodeType":"UserDefinedTypeName","pathNode":{"id":79997,"name":"Gear.Validators","nameLocations":["14457:4:165","14462:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"14457:15:165"},"referencedDeclaration":82899,"src":"14457:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":80005,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80002,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"14528: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":80003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14528: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":80000,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"14502:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14507:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83777,"src":"14502:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14502:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14457:81:165"},{"body":{"id":80028,"nodeType":"Block","src":"14598:114:165","statements":[{"condition":{"id":80023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14616:39:165","subExpression":{"baseExpression":{"expression":{"id":80017,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79999,"src":"14617:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14636:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82891,"src":"14617:22:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80022,"indexExpression":{"baseExpression":{"id":80019,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79990,"src":"14640:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80021,"indexExpression":{"id":80020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80007,"src":"14652:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14640:14:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14617:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80027,"nodeType":"IfStatement","src":"14612:90:165","trueBody":{"id":80026,"nodeType":"Block","src":"14657:45:165","statements":[{"expression":{"hexValue":"66616c7365","id":80024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14682:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":79994,"id":80025,"nodeType":"Return","src":"14675:12:165"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80007,"src":"14569:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80011,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79990,"src":"14573:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14585:6:165","memberName":"length","nodeType":"MemberAccess","src":"14573:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14569:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80029,"initializationExpression":{"assignments":[80007],"declarations":[{"constant":false,"id":80007,"mutability":"mutable","name":"i","nameLocation":"14562:1:165","nodeType":"VariableDeclaration","scope":80029,"src":"14554:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80006,"name":"uint256","nodeType":"ElementaryTypeName","src":"14554:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80009,"initialValue":{"hexValue":"30","id":80008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14566:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14554:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14593:3:165","subExpression":{"id":80014,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80007,"src":"14593:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80016,"nodeType":"ExpressionStatement","src":"14593:3:165"},"nodeType":"ForStatement","src":"14549:163:165"},{"expression":{"hexValue":"74727565","id":80030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14729:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":79994,"id":80031,"nodeType":"Return","src":"14722:11:165"}]},"baseFunctions":[74707],"documentation":{"id":79987,"nodeType":"StructuredDocumentation","src":"14199: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":"14374:13:165","parameters":{"id":79991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79990,"mutability":"mutable","name":"_validators","nameLocation":"14407:11:165","nodeType":"VariableDeclaration","scope":80033,"src":"14388:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79988,"name":"address","nodeType":"ElementaryTypeName","src":"14388:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79989,"nodeType":"ArrayTypeName","src":"14388:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14387:32:165"},"returnParameters":{"id":79994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80033,"src":"14441:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79992,"name":"bool","nodeType":"ElementaryTypeName","src":"14441:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14440:6:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80051,"nodeType":"FunctionDefinition","src":"14902:144:165","nodes":[],"body":{"id":80050,"nodeType":"Block","src":"14970:76:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80043,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"15013: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":80044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15013: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":80041,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"14987:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14992:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83777,"src":"14987:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14987:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15024:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82891,"src":"14987:40:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80048,"indexExpression":{"id":80047,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80036,"src":"15028:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14987:52:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80040,"id":80049,"nodeType":"Return","src":"14980:59:165"}]},"baseFunctions":[74715],"documentation":{"id":80034,"nodeType":"StructuredDocumentation","src":"14746: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":"14911:11:165","parameters":{"id":80037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80036,"mutability":"mutable","name":"_validator","nameLocation":"14931:10:165","nodeType":"VariableDeclaration","scope":80051,"src":"14923:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80035,"name":"address","nodeType":"ElementaryTypeName","src":"14923:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14922:20:165"},"returnParameters":{"id":80040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80051,"src":"14964:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80038,"name":"bool","nodeType":"ElementaryTypeName","src":"14964:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14963:6:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80076,"nodeType":"FunctionDefinition","src":"15290:285:165","nodes":[],"body":{"id":80075,"nodeType":"Block","src":"15405:170:165","nodes":[],"statements":[{"assignments":[80063],"declarations":[{"constant":false,"id":80063,"mutability":"mutable","name":"router","nameLocation":"15439:6:165","nodeType":"VariableDeclaration","scope":80075,"src":"15415:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80062,"nodeType":"UserDefinedTypeName","pathNode":{"id":80061,"name":"IRouter.Storage","nameLocations":["15415:7:165","15423:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"15415:15:165"},"referencedDeclaration":74490,"src":"15415:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80066,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80064,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"15448: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":80065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15448:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15415:42:165"},{"expression":{"components":[{"expression":{"expression":{"id":80067,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80063,"src":"15475:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15482:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"15475:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15501:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"15475:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80070,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80063,"src":"15521:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15528:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"15521:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15547:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83146,"src":"15521:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":80073,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15474:94:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":80058,"id":80074,"nodeType":"Return","src":"15467:101:165"}]},"baseFunctions":[74723],"documentation":{"id":80052,"nodeType":"StructuredDocumentation","src":"15052: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":"15299:24:165","parameters":{"id":80053,"nodeType":"ParameterList","parameters":[],"src":"15323:2:165"},"returnParameters":{"id":80058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80055,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15355:18:165","nodeType":"VariableDeclaration","scope":80076,"src":"15347:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80054,"name":"uint128","nodeType":"ElementaryTypeName","src":"15347:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80057,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15383:20:165","nodeType":"VariableDeclaration","scope":80076,"src":"15375:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80056,"name":"uint128","nodeType":"ElementaryTypeName","src":"15375:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"15346:58:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80091,"nodeType":"FunctionDefinition","src":"15707:126:165","nodes":[],"body":{"id":80090,"nodeType":"Block","src":"15768:65:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80085,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"15811: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":80086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15811: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":80083,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"15785:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15790:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83777,"src":"15785:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15785:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15822:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82895,"src":"15785:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":80082,"id":80089,"nodeType":"Return","src":"15778:48:165"}]},"baseFunctions":[74730],"documentation":{"id":80077,"nodeType":"StructuredDocumentation","src":"15581: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":"15716:10:165","parameters":{"id":80078,"nodeType":"ParameterList","parameters":[],"src":"15726:2:165"},"returnParameters":{"id":80082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80081,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80091,"src":"15750:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80079,"name":"address","nodeType":"ElementaryTypeName","src":"15750:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80080,"nodeType":"ArrayTypeName","src":"15750:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15749:18:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80106,"nodeType":"FunctionDefinition","src":"15972:129:165","nodes":[],"body":{"id":80105,"nodeType":"Block","src":"16029:72:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80099,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"16072: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":80100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16072: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":80097,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"16046:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16051:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83777,"src":"16046:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16046:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16083:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82895,"src":"16046:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16088:6:165","memberName":"length","nodeType":"MemberAccess","src":"16046:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80096,"id":80104,"nodeType":"Return","src":"16039:55:165"}]},"baseFunctions":[74736],"documentation":{"id":80092,"nodeType":"StructuredDocumentation","src":"15839: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":"15981:15:165","parameters":{"id":80093,"nodeType":"ParameterList","parameters":[],"src":"15996:2:165"},"returnParameters":{"id":80096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80106,"src":"16020:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80094,"name":"uint256","nodeType":"ElementaryTypeName","src":"16020:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16019:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80137,"nodeType":"FunctionDefinition","src":"16302:348:165","nodes":[],"body":{"id":80136,"nodeType":"Block","src":"16363:287:165","nodes":[],"statements":[{"assignments":[80116],"declarations":[{"constant":false,"id":80116,"mutability":"mutable","name":"router","nameLocation":"16397:6:165","nodeType":"VariableDeclaration","scope":80136,"src":"16373:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80115,"nodeType":"UserDefinedTypeName","pathNode":{"id":80114,"name":"IRouter.Storage","nameLocations":["16373:7:165","16381:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"16373:15:165"},"referencedDeclaration":74490,"src":"16373:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80119,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80117,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"16406: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":80118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16406:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16373:42:165"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":80124,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80116,"src":"16496: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":80122,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"16470:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16475:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83777,"src":"16470:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16470:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16504:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82895,"src":"16470:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16509:6:165","memberName":"length","nodeType":"MemberAccess","src":"16470:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80128,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80116,"src":"16529:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16536:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"16529:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16555:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"16529:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80131,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80116,"src":"16587:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16594:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"16587:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83153_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83146,"src":"16587: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":80120,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"16432:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16437:19:165","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":83945,"src":"16432: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":80134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16432:211:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80111,"id":80135,"nodeType":"Return","src":"16425:218:165"}]},"baseFunctions":[74742],"documentation":{"id":80107,"nodeType":"StructuredDocumentation","src":"16107: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":"16311:19:165","parameters":{"id":80108,"nodeType":"ParameterList","parameters":[],"src":"16330:2:165"},"returnParameters":{"id":80111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80137,"src":"16354:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80109,"name":"uint256","nodeType":"ElementaryTypeName","src":"16354:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16353:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80151,"nodeType":"FunctionDefinition","src":"16822:122:165","nodes":[],"body":{"id":80150,"nodeType":"Block","src":"16906:38:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":80146,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"16923:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$82324_$","typeString":"type(contract super Router)"}},"id":80147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16929:6:165","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43784,"src":"16923:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":80148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16923:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80145,"id":80149,"nodeType":"Return","src":"16916:21:165"}]},"baseFunctions":[43784,74748],"documentation":{"id":80138,"nodeType":"StructuredDocumentation","src":"16656: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":"16831:6:165","overrides":{"id":80142,"nodeType":"OverrideSpecifier","overrides":[{"id":80140,"name":"IRouter","nameLocations":["16861:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74985,"src":"16861:7:165"},{"id":80141,"name":"PausableUpgradeable","nameLocations":["16870:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"16870:19:165"}],"src":"16852:38:165"},"parameters":{"id":80139,"nodeType":"ParameterList","parameters":[],"src":"16837:2:165"},"returnParameters":{"id":80145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80144,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80151,"src":"16900:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80143,"name":"bool","nodeType":"ElementaryTypeName","src":"16900:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16899:6:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80163,"nodeType":"FunctionDefinition","src":"17069:130:165","nodes":[],"body":{"id":80162,"nodeType":"Block","src":"17150:49:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80158,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"17167: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":80159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17167:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17177:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"17167:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":80157,"id":80161,"nodeType":"Return","src":"17160:32:165"}]},"baseFunctions":[74755],"documentation":{"id":80152,"nodeType":"StructuredDocumentation","src":"16950:114:165","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17078:15:165","parameters":{"id":80153,"nodeType":"ParameterList","parameters":[],"src":"17093:2:165"},"returnParameters":{"id":80157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80156,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80163,"src":"17117:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":80155,"nodeType":"UserDefinedTypeName","pathNode":{"id":80154,"name":"Gear.ComputationSettings","nameLocations":["17117:4:165","17122:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83038,"src":"17117:24:165"},"referencedDeclaration":83038,"src":"17117:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83038_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17116:33:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80180,"nodeType":"FunctionDefinition","src":"17308:134:165","nodes":[],"body":{"id":80179,"nodeType":"Block","src":"17381:61:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80172,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"17398: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":80173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17398:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17408:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"17398:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17421:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"17398:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80177,"indexExpression":{"id":80176,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80166,"src":"17427:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17398:37:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"functionReturnParameters":80171,"id":80178,"nodeType":"Return","src":"17391:44:165"}]},"baseFunctions":[74764],"documentation":{"id":80164,"nodeType":"StructuredDocumentation","src":"17205: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":"17317:9:165","parameters":{"id":80167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80166,"mutability":"mutable","name":"_codeId","nameLocation":"17335:7:165","nodeType":"VariableDeclaration","scope":80180,"src":"17327:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17327:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17326:17:165"},"returnParameters":{"id":80171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80180,"src":"17365:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"},"typeName":{"id":80169,"nodeType":"UserDefinedTypeName","pathNode":{"id":80168,"name":"Gear.CodeState","nameLocations":["17365:4:165","17370:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83026,"src":"17365:14:165"},"referencedDeclaration":83026,"src":"17365:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"17364:16:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80239,"nodeType":"FunctionDefinition","src":"17566:378:165","nodes":[],"body":{"id":80238,"nodeType":"Block","src":"17663:281:165","nodes":[],"statements":[{"assignments":[80193],"declarations":[{"constant":false,"id":80193,"mutability":"mutable","name":"router","nameLocation":"17689:6:165","nodeType":"VariableDeclaration","scope":80238,"src":"17673:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80192,"nodeType":"UserDefinedTypeName","pathNode":{"id":80191,"name":"Storage","nameLocations":["17673:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"17673:7:165"},"referencedDeclaration":74490,"src":"17673:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80196,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80194,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"17698: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":80195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17698:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17673:34:165"},{"assignments":[80202],"declarations":[{"constant":false,"id":80202,"mutability":"mutable","name":"res","nameLocation":"17742:3:165","nodeType":"VariableDeclaration","scope":80238,"src":"17718:27:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83026_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80200,"nodeType":"UserDefinedTypeName","pathNode":{"id":80199,"name":"Gear.CodeState","nameLocations":["17718:4:165","17723:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83026,"src":"17718:14:165"},"referencedDeclaration":83026,"src":"17718:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"id":80201,"nodeType":"ArrayTypeName","src":"17718:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83026_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":80210,"initialValue":{"arguments":[{"expression":{"id":80207,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80184,"src":"17769:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17779:6:165","memberName":"length","nodeType":"MemberAccess","src":"17769:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17748:20:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$83026_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":80204,"nodeType":"UserDefinedTypeName","pathNode":{"id":80203,"name":"Gear.CodeState","nameLocations":["17752:4:165","17757:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83026,"src":"17752:14:165"},"referencedDeclaration":83026,"src":"17752:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"id":80205,"nodeType":"ArrayTypeName","src":"17752:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83026_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":80209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17748:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83026_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17718:68:165"},{"body":{"id":80234,"nodeType":"Block","src":"17844:73:165","statements":[{"expression":{"id":80232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80222,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80202,"src":"17858:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83026_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":80224,"indexExpression":{"id":80223,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80212,"src":"17862:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17858:6:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80225,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80193,"src":"17867:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17874:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"17867:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17887:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"17867:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80231,"indexExpression":{"baseExpression":{"id":80228,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80184,"src":"17893:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80230,"indexExpression":{"id":80229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80212,"src":"17903:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17893:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17867:39:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"src":"17858:48:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"id":80233,"nodeType":"ExpressionStatement","src":"17858:48:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80215,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80212,"src":"17817:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80216,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80184,"src":"17821:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17831:6:165","memberName":"length","nodeType":"MemberAccess","src":"17821:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17817:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80235,"initializationExpression":{"assignments":[80212],"declarations":[{"constant":false,"id":80212,"mutability":"mutable","name":"i","nameLocation":"17810:1:165","nodeType":"VariableDeclaration","scope":80235,"src":"17802:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80211,"name":"uint256","nodeType":"ElementaryTypeName","src":"17802:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80214,"initialValue":{"hexValue":"30","id":80213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17814:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17802:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17839:3:165","subExpression":{"id":80219,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80212,"src":"17839:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80221,"nodeType":"ExpressionStatement","src":"17839:3:165"},"nodeType":"ForStatement","src":"17797:120:165"},{"expression":{"id":80236,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80202,"src":"17934:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83026_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":80190,"id":80237,"nodeType":"Return","src":"17927:10:165"}]},"baseFunctions":[74775],"documentation":{"id":80181,"nodeType":"StructuredDocumentation","src":"17448: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":"17575:11:165","parameters":{"id":80185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80184,"mutability":"mutable","name":"_codesIds","nameLocation":"17606:9:165","nodeType":"VariableDeclaration","scope":80239,"src":"17587:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17587:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80183,"nodeType":"ArrayTypeName","src":"17587:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"17586:30:165"},"returnParameters":{"id":80190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80189,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80239,"src":"17638:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83026_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80187,"nodeType":"UserDefinedTypeName","pathNode":{"id":80186,"name":"Gear.CodeState","nameLocations":["17638:4:165","17643:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83026,"src":"17638:14:165"},"referencedDeclaration":83026,"src":"17638:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"id":80188,"nodeType":"ArrayTypeName","src":"17638:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83026_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"17637:25:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80255,"nodeType":"FunctionDefinition","src":"18070:140:165","nodes":[],"body":{"id":80254,"nodeType":"Block","src":"18143:67:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80247,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"18160: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":80248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18160:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18170:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18160:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18183:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"18160:31:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80252,"indexExpression":{"id":80251,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80242,"src":"18192:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18160:43:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80246,"id":80253,"nodeType":"Return","src":"18153:50:165"}]},"baseFunctions":[74783],"documentation":{"id":80240,"nodeType":"StructuredDocumentation","src":"17950: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":"18079:13:165","parameters":{"id":80243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80242,"mutability":"mutable","name":"_programId","nameLocation":"18101:10:165","nodeType":"VariableDeclaration","scope":80255,"src":"18093:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80241,"name":"address","nodeType":"ElementaryTypeName","src":"18093:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18092:20:165"},"returnParameters":{"id":80246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80255,"src":"18134:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18134:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18133:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80311,"nodeType":"FunctionDefinition","src":"18342:376:165","nodes":[],"body":{"id":80310,"nodeType":"Block","src":"18439:279:165","nodes":[],"statements":[{"assignments":[80267],"declarations":[{"constant":false,"id":80267,"mutability":"mutable","name":"router","nameLocation":"18465:6:165","nodeType":"VariableDeclaration","scope":80310,"src":"18449:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80266,"nodeType":"UserDefinedTypeName","pathNode":{"id":80265,"name":"Storage","nameLocations":["18449:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"18449:7:165"},"referencedDeclaration":74490,"src":"18449:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80270,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80268,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"18474: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":80269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18474:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18449:34:165"},{"assignments":[80275],"declarations":[{"constant":false,"id":80275,"mutability":"mutable","name":"res","nameLocation":"18511:3:165","nodeType":"VariableDeclaration","scope":80310,"src":"18494:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18494:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80274,"nodeType":"ArrayTypeName","src":"18494:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":80282,"initialValue":{"arguments":[{"expression":{"id":80279,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80259,"src":"18531:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18544:6:165","memberName":"length","nodeType":"MemberAccess","src":"18531:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18517: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":80276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18521:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80277,"nodeType":"ArrayTypeName","src":"18521:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":80281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18517:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18494:57:165"},{"body":{"id":80306,"nodeType":"Block","src":"18612:79:165","statements":[{"expression":{"id":80304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80294,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80275,"src":"18626:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":80296,"indexExpression":{"id":80295,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80284,"src":"18630:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18626:6:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80297,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80267,"src":"18635:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18642:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18635:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18655:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"18635:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80303,"indexExpression":{"baseExpression":{"id":80300,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80259,"src":"18664:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80302,"indexExpression":{"id":80301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80284,"src":"18677:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18664:15:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18635:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18626:54:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80305,"nodeType":"ExpressionStatement","src":"18626:54:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80287,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80284,"src":"18582:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80288,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80259,"src":"18586:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18599:6:165","memberName":"length","nodeType":"MemberAccess","src":"18586:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18582:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80307,"initializationExpression":{"assignments":[80284],"declarations":[{"constant":false,"id":80284,"mutability":"mutable","name":"i","nameLocation":"18575:1:165","nodeType":"VariableDeclaration","scope":80307,"src":"18567:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80283,"name":"uint256","nodeType":"ElementaryTypeName","src":"18567:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80286,"initialValue":{"hexValue":"30","id":80285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18579:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18567:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18607:3:165","subExpression":{"id":80291,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80284,"src":"18607:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80293,"nodeType":"ExpressionStatement","src":"18607:3:165"},"nodeType":"ForStatement","src":"18562:129:165"},{"expression":{"id":80308,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80275,"src":"18708:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":80264,"id":80309,"nodeType":"Return","src":"18701:10:165"}]},"baseFunctions":[74793],"documentation":{"id":80256,"nodeType":"StructuredDocumentation","src":"18216: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":"18351:15:165","parameters":{"id":80260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80259,"mutability":"mutable","name":"_programsIds","nameLocation":"18386:12:165","nodeType":"VariableDeclaration","scope":80311,"src":"18367:31:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80257,"name":"address","nodeType":"ElementaryTypeName","src":"18367:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80258,"nodeType":"ArrayTypeName","src":"18367:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18366:33:165"},"returnParameters":{"id":80264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80311,"src":"18421:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18421:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80262,"nodeType":"ArrayTypeName","src":"18421:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18420:18:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80323,"nodeType":"FunctionDefinition","src":"18835:115:165","nodes":[],"body":{"id":80322,"nodeType":"Block","src":"18890:60:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80317,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"18907: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":80318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18907:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18917:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18907:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18930:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83082,"src":"18907:36:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80316,"id":80321,"nodeType":"Return","src":"18900:43:165"}]},"baseFunctions":[74799],"documentation":{"id":80312,"nodeType":"StructuredDocumentation","src":"18724: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":"18844:13:165","parameters":{"id":80313,"nodeType":"ParameterList","parameters":[],"src":"18857:2:165"},"returnParameters":{"id":80316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80323,"src":"18881:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80314,"name":"uint256","nodeType":"ElementaryTypeName","src":"18881:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18880:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80335,"nodeType":"FunctionDefinition","src":"19087:127:165","nodes":[],"body":{"id":80334,"nodeType":"Block","src":"19148:66:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80329,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"19165: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":80330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19165:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19175:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19165:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19188:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83085,"src":"19165:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80328,"id":80333,"nodeType":"Return","src":"19158:49:165"}]},"baseFunctions":[74805],"documentation":{"id":80324,"nodeType":"StructuredDocumentation","src":"18956: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":"19096:19:165","parameters":{"id":80325,"nodeType":"ParameterList","parameters":[],"src":"19115:2:165"},"returnParameters":{"id":80328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80335,"src":"19139:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80326,"name":"uint256","nodeType":"ElementaryTypeName","src":"19139:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19138:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80347,"nodeType":"FunctionDefinition","src":"19411:147:165","nodes":[],"body":{"id":80346,"nodeType":"Block","src":"19483:75:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80341,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"19500: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":80342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19500:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19510:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19500:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19523:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83091,"src":"19500:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80340,"id":80345,"nodeType":"Return","src":"19493:58:165"}]},"baseFunctions":[74811],"documentation":{"id":80336,"nodeType":"StructuredDocumentation","src":"19220: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":"19420:28:165","parameters":{"id":80337,"nodeType":"ParameterList","parameters":[],"src":"19448:2:165"},"returnParameters":{"id":80340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80347,"src":"19474:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80338,"name":"uint256","nodeType":"ElementaryTypeName","src":"19474:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19473:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80359,"nodeType":"FunctionDefinition","src":"19810:149:165","nodes":[],"body":{"id":80358,"nodeType":"Block","src":"19883:76:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80353,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"19900: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":80354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19900:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19910:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19900:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19923:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83094,"src":"19900:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80352,"id":80357,"nodeType":"Return","src":"19893:59:165"}]},"baseFunctions":[74817],"documentation":{"id":80348,"nodeType":"StructuredDocumentation","src":"19564: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":"19819:29:165","parameters":{"id":80349,"nodeType":"ParameterList","parameters":[],"src":"19848:2:165"},"returnParameters":{"id":80352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80359,"src":"19874:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80350,"name":"uint256","nodeType":"ElementaryTypeName","src":"19874:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19873:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80371,"nodeType":"FunctionDefinition","src":"20056:108:165","nodes":[],"body":{"id":80370,"nodeType":"Block","src":"20121:43:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80366,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"20138: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":80367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20138:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20148:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"20138:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":80365,"id":80369,"nodeType":"Return","src":"20131:26:165"}]},"baseFunctions":[74824],"documentation":{"id":80360,"nodeType":"StructuredDocumentation","src":"19965:86:165","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"20065:9:165","parameters":{"id":80361,"nodeType":"ParameterList","parameters":[],"src":"20074:2:165"},"returnParameters":{"id":80365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80371,"src":"20098:21:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":80363,"nodeType":"UserDefinedTypeName","pathNode":{"id":80362,"name":"Gear.Timelines","nameLocations":["20098:4:165","20103:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83141,"src":"20098:14:165"},"referencedDeclaration":83141,"src":"20098:14:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"20097:23:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80381,"nodeType":"FunctionDefinition","src":"20338:104:165","nodes":[],"body":{"id":80380,"nodeType":"Block","src":"20398:44:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80377,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"20415:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20415:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80376,"id":80379,"nodeType":"Return","src":"20408:27:165"}]},"baseFunctions":[74830],"documentation":{"id":80372,"nodeType":"StructuredDocumentation","src":"20170: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":"20347:16:165","parameters":{"id":80373,"nodeType":"ParameterList","parameters":[],"src":"20363:2:165"},"returnParameters":{"id":80376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80381,"src":"20389:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20389:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20388:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80397,"nodeType":"FunctionDefinition","src":"20606:116:165","nodes":[],"body":{"id":80396,"nodeType":"Block","src":"20663:59:165","nodes":[],"statements":[{"expression":{"id":80394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80389,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"20673: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":80390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20673:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20683:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"20673:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20697:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"20673:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80393,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80384,"src":"20706:9:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20673:42:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80395,"nodeType":"ExpressionStatement","src":"20673:42:165"}]},"baseFunctions":[74836],"documentation":{"id":80382,"nodeType":"StructuredDocumentation","src":"20473: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":80387,"kind":"modifierInvocation","modifierName":{"id":80386,"name":"onlyOwner","nameLocations":["20653:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"20653:9:165"},"nodeType":"ModifierInvocation","src":"20653:9:165"}],"name":"setMirror","nameLocation":"20615:9:165","parameters":{"id":80385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80384,"mutability":"mutable","name":"newMirror","nameLocation":"20633:9:165","nodeType":"VariableDeclaration","scope":80397,"src":"20625:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80383,"name":"address","nodeType":"ElementaryTypeName","src":"20625:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20624:19:165"},"returnParameters":{"id":80388,"nodeType":"ParameterList","parameters":[],"src":"20663:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80413,"nodeType":"FunctionDefinition","src":"20901:161:165","nodes":[],"body":{"id":80412,"nodeType":"Block","src":"20981:81:165","nodes":[],"statements":[{"expression":{"id":80410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80405,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"20991: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":80406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20991:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21001:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"20991:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21014:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83091,"src":"20991:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80409,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80400,"src":"21045:10:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20991:64:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80411,"nodeType":"ExpressionStatement","src":"20991:64:165"}]},"baseFunctions":[74842],"documentation":{"id":80398,"nodeType":"StructuredDocumentation","src":"20728: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":80403,"kind":"modifierInvocation","modifierName":{"id":80402,"name":"onlyOwner","nameLocations":["20971:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"20971:9:165"},"nodeType":"ModifierInvocation","src":"20971:9:165"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"20910:31:165","parameters":{"id":80401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80400,"mutability":"mutable","name":"newBaseFee","nameLocation":"20950:10:165","nodeType":"VariableDeclaration","scope":80413,"src":"20942:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80399,"name":"uint256","nodeType":"ElementaryTypeName","src":"20942:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20941:20:165"},"returnParameters":{"id":80404,"nodeType":"ParameterList","parameters":[],"src":"20981:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80429,"nodeType":"FunctionDefinition","src":"21296:165:165","nodes":[],"body":{"id":80428,"nodeType":"Block","src":"21378:83:165","nodes":[],"statements":[{"expression":{"id":80426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80421,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"21388: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":80422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21388:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21398:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"21388:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21411:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83094,"src":"21388:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80425,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80416,"src":"21443:11:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21388:66:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80427,"nodeType":"ExpressionStatement","src":"21388:66:165"}]},"baseFunctions":[74848],"documentation":{"id":80414,"nodeType":"StructuredDocumentation","src":"21068: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":80419,"kind":"modifierInvocation","modifierName":{"id":80418,"name":"onlyOwner","nameLocations":["21368:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21368:9:165"},"nodeType":"ModifierInvocation","src":"21368:9:165"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"21305:32:165","parameters":{"id":80417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80416,"mutability":"mutable","name":"newExtraFee","nameLocation":"21346:11:165","nodeType":"VariableDeclaration","scope":80429,"src":"21338:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80415,"name":"uint256","nodeType":"ElementaryTypeName","src":"21338:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21337:21:165"},"returnParameters":{"id":80420,"nodeType":"ParameterList","parameters":[],"src":"21378:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80439,"nodeType":"FunctionDefinition","src":"21516:59:165","nodes":[],"body":{"id":80438,"nodeType":"Block","src":"21550:25:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80435,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43833,"src":"21560:6:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21560:8:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80437,"nodeType":"ExpressionStatement","src":"21560:8:165"}]},"baseFunctions":[74852],"documentation":{"id":80430,"nodeType":"StructuredDocumentation","src":"21467:44:165","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":80433,"kind":"modifierInvocation","modifierName":{"id":80432,"name":"onlyOwner","nameLocations":["21540:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21540:9:165"},"nodeType":"ModifierInvocation","src":"21540:9:165"}],"name":"pause","nameLocation":"21525:5:165","parameters":{"id":80431,"nodeType":"ParameterList","parameters":[],"src":"21530:2:165"},"returnParameters":{"id":80434,"nodeType":"ParameterList","parameters":[],"src":"21550:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80449,"nodeType":"FunctionDefinition","src":"21632:63:165","nodes":[],"body":{"id":80448,"nodeType":"Block","src":"21668:27:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80445,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43857,"src":"21678:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21678:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80447,"nodeType":"ExpressionStatement","src":"21678:10:165"}]},"baseFunctions":[74856],"documentation":{"id":80440,"nodeType":"StructuredDocumentation","src":"21581:46:165","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":80443,"kind":"modifierInvocation","modifierName":{"id":80442,"name":"onlyOwner","nameLocations":["21658:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21658:9:165"},"nodeType":"ModifierInvocation","src":"21658:9:165"}],"name":"unpause","nameLocation":"21641:7:165","parameters":{"id":80441,"nodeType":"ParameterList","parameters":[],"src":"21648:2:165"},"returnParameters":{"id":80444,"nodeType":"ParameterList","parameters":[],"src":"21668:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80504,"nodeType":"FunctionDefinition","src":"21796:385:165","nodes":[],"body":{"id":80503,"nodeType":"Block","src":"21834:347:165","nodes":[],"statements":[{"assignments":[80455],"declarations":[{"constant":false,"id":80455,"mutability":"mutable","name":"router","nameLocation":"21860:6:165","nodeType":"VariableDeclaration","scope":80503,"src":"21844:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80454,"nodeType":"UserDefinedTypeName","pathNode":{"id":80453,"name":"Storage","nameLocations":["21844:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"21844:7:165"},"referencedDeclaration":74490,"src":"21844:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80458,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80456,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"21869: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":80457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21844:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80460,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80455,"src":"21897:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"21897:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21917:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"21897:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21933: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":80464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21925:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21925:7:165","typeDescriptions":{}}},"id":80466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21925:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21897:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80468,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74553,"src":"21937:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21937:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80459,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21889:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21889:72:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80471,"nodeType":"ExpressionStatement","src":"21889:72:165"},{"assignments":[80473],"declarations":[{"constant":false,"id":80473,"mutability":"mutable","name":"genesisHash","nameLocation":"21980:11:165","nodeType":"VariableDeclaration","scope":80503,"src":"21972:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21972:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80479,"initialValue":{"arguments":[{"expression":{"expression":{"id":80475,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80455,"src":"22004:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22011:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22004:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22024:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83043,"src":"22004:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80474,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"21994:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21994:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21972:59:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80481,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80473,"src":"22050:11:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22073: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":80483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22065:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22065:7:165","typeDescriptions":{}}},"id":80485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22065:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22050:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80487,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74556,"src":"22077:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22077:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80480,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22042:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22042:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80490,"nodeType":"ExpressionStatement","src":"22042:57:165"},{"expression":{"id":80501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":80491,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80455,"src":"22110:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22117:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22110:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22130:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"22110:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":80497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80455,"src":"22147:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22154:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22147:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22167:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83043,"src":"22147:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80496,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22137:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22137:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22110:64:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80502,"nodeType":"ExpressionStatement","src":"22110:64:165"}]},"baseFunctions":[74860],"documentation":{"id":80450,"nodeType":"StructuredDocumentation","src":"21720:71:165","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"21805:17:165","parameters":{"id":80451,"nodeType":"ParameterList","parameters":[],"src":"21822:2:165"},"returnParameters":{"id":80452,"nodeType":"ParameterList","parameters":[],"src":"21834:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80633,"nodeType":"FunctionDefinition","src":"23043:986:165","nodes":[],"body":{"id":80632,"nodeType":"Block","src":"23187:842:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23214: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":80521,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"23205:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23205:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23220:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23205:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80526,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74559,"src":"23223:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23223:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80520,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23197:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23197:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80529,"nodeType":"ExpressionStatement","src":"23197:41:165"},{"assignments":[80532],"declarations":[{"constant":false,"id":80532,"mutability":"mutable","name":"router","nameLocation":"23265:6:165","nodeType":"VariableDeclaration","scope":80632,"src":"23249:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80531,"nodeType":"UserDefinedTypeName","pathNode":{"id":80530,"name":"Storage","nameLocations":["23249:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"23249:7:165"},"referencedDeclaration":74490,"src":"23249:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80535,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80533,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"23274: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":80534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23274:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23249:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80537,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80532,"src":"23301:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23308:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"23301:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23321:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"23301:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23337: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":80541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23329:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23329:7:165","typeDescriptions":{}}},"id":80543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23329:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23301:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80545,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74562,"src":"23341:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23341:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80536,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23293:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23293:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80548,"nodeType":"ExpressionStatement","src":"23293:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"},"id":80558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80550,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80532,"src":"23394:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23401:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23394:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23414:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"23394:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80554,"indexExpression":{"id":80553,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80507,"src":"23420:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23394:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80555,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"23432:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23437:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"23432:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83026_$","typeString":"type(enum Gear.CodeState)"}},"id":80557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23447:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83021,"src":"23432:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"src":"23394:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80559,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74565,"src":"23456:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23456:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80549,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23386:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23386:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80562,"nodeType":"ExpressionStatement","src":"23386:107:165"},{"assignments":[80565],"declarations":[{"constant":false,"id":80565,"mutability":"mutable","name":"_wrappedVara","nameLocation":"23517:12:165","nodeType":"VariableDeclaration","scope":80632,"src":"23504:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"},"typeName":{"id":80564,"nodeType":"UserDefinedTypeName","pathNode":{"id":80563,"name":"IWrappedVara","nameLocations":["23504:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75001,"src":"23504:12:165"},"referencedDeclaration":75001,"src":"23504:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80571,"initialValue":{"arguments":[{"expression":{"expression":{"id":80567,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80532,"src":"23545:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23552:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"23545:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23566:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82918,"src":"23545:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80566,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"23532:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75001_$","typeString":"type(contract IWrappedVara)"}},"id":80570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23532:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"23504:74:165"},{"assignments":[80573],"declarations":[{"constant":false,"id":80573,"mutability":"mutable","name":"baseFee","nameLocation":"23597:7:165","nodeType":"VariableDeclaration","scope":80632,"src":"23589:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80572,"name":"uint256","nodeType":"ElementaryTypeName","src":"23589:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80577,"initialValue":{"expression":{"expression":{"id":80574,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80532,"src":"23607:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23614:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23607:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23627:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83091,"src":"23607:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23589:66:165"},{"clauses":[{"block":{"id":80592,"nodeType":"Block","src":"23748:2:165","statements":[]},"errorName":"","id":80593,"nodeType":"TryCatchClause","src":"23748:2:165"},{"block":{"id":80594,"nodeType":"Block","src":"23757:2:165","statements":[]},"errorName":"","id":80595,"nodeType":"TryCatchClause","src":"23751:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80580,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23689:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23693:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23689:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80584,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23709:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":80583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23701:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80582,"name":"address","nodeType":"ElementaryTypeName","src":"23701:7:165","typeDescriptions":{}}},"id":80585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23701:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80586,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80573,"src":"23716:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80587,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80509,"src":"23725:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80588,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80511,"src":"23736:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80589,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"23740:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80590,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80515,"src":"23744: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":80578,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80565,"src":"23669:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":80579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23682:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"23669: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":80591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23669:78:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80596,"nodeType":"TryStatement","src":"23665:94:165"},{"assignments":[80598],"declarations":[{"constant":false,"id":80598,"mutability":"mutable","name":"success","nameLocation":"23773:7:165","nodeType":"VariableDeclaration","scope":80632,"src":"23768:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80597,"name":"bool","nodeType":"ElementaryTypeName","src":"23768:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80609,"initialValue":{"arguments":[{"expression":{"id":80601,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23809:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23813:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23809:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80605,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23829:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":80604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23821:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80603,"name":"address","nodeType":"ElementaryTypeName","src":"23821:7:165","typeDescriptions":{}}},"id":80606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23821:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80607,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80573,"src":"23836: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":80599,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80565,"src":"23783:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":80600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23796:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"23783: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":80608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23783:61:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"23768:76:165"},{"expression":{"arguments":[{"id":80611,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80598,"src":"23862:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80612,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74598,"src":"23871:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23871:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23854:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23854:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80615,"nodeType":"ExpressionStatement","src":"23854:38:165"},{"expression":{"id":80626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80616,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80532,"src":"23903:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23910:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23903:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23923:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"23903:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80622,"indexExpression":{"id":80619,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80507,"src":"23929:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23903:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80623,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"23940:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23945:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"23940:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83026_$","typeString":"type(enum Gear.CodeState)"}},"id":80625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23955:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83023,"src":"23940:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"src":"23903:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"id":80627,"nodeType":"ExpressionStatement","src":"23903:71:165"},{"eventCall":{"arguments":[{"id":80629,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80507,"src":"24014:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80628,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74512,"src":"23990:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23990:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80631,"nodeType":"EmitStatement","src":"23985:37:165"}]},"baseFunctions":[74874],"documentation":{"id":80505,"nodeType":"StructuredDocumentation","src":"22187: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":80518,"kind":"modifierInvocation","modifierName":{"id":80517,"name":"whenNotPaused","nameLocations":["23169:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"23169:13:165"},"nodeType":"ModifierInvocation","src":"23169:13:165"}],"name":"requestCodeValidation","nameLocation":"23052:21:165","parameters":{"id":80516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80507,"mutability":"mutable","name":"_codeId","nameLocation":"23082:7:165","nodeType":"VariableDeclaration","scope":80633,"src":"23074:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23074:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80509,"mutability":"mutable","name":"_deadline","nameLocation":"23099:9:165","nodeType":"VariableDeclaration","scope":80633,"src":"23091:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80508,"name":"uint256","nodeType":"ElementaryTypeName","src":"23091:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80511,"mutability":"mutable","name":"_v","nameLocation":"23116:2:165","nodeType":"VariableDeclaration","scope":80633,"src":"23110:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80510,"name":"uint8","nodeType":"ElementaryTypeName","src":"23110:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80513,"mutability":"mutable","name":"_r","nameLocation":"23128:2:165","nodeType":"VariableDeclaration","scope":80633,"src":"23120:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23120:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80515,"mutability":"mutable","name":"_s","nameLocation":"23140:2:165","nodeType":"VariableDeclaration","scope":80633,"src":"23132:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23132:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23073:70:165"},"returnParameters":{"id":80519,"nodeType":"ParameterList","parameters":[],"src":"23187:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80899,"nodeType":"FunctionDefinition","src":"25536:2418:165","nodes":[],"body":{"id":80898,"nodeType":"Block","src":"25846:2108:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25873: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":80661,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"25864:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25864:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25879:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25864:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80666,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74559,"src":"25882:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25882:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80660,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25856:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25856:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80669,"nodeType":"ExpressionStatement","src":"25856:41:165"},{"assignments":[80672],"declarations":[{"constant":false,"id":80672,"mutability":"mutable","name":"router","nameLocation":"25924:6:165","nodeType":"VariableDeclaration","scope":80898,"src":"25908:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80671,"nodeType":"UserDefinedTypeName","pathNode":{"id":80670,"name":"Storage","nameLocations":["25908:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"25908:7:165"},"referencedDeclaration":74490,"src":"25908:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80675,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80673,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"25933: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":80674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25933:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25908:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80677,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80672,"src":"25960:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25967:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"25960:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25980:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"25960:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25996: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":80681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25988:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25988:7:165","typeDescriptions":{}}},"id":80683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25988:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25960:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80685,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74562,"src":"26000:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26000:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80676,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25952:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25952:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80688,"nodeType":"ExpressionStatement","src":"25952:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"},"id":80698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80690,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80672,"src":"26053:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26060:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"26053:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26073:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"26053:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80694,"indexExpression":{"id":80693,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80638,"src":"26079:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26053:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80695,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"26091:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26096:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"26091:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83026_$","typeString":"type(enum Gear.CodeState)"}},"id":80697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26106:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83021,"src":"26091:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"src":"26053:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80699,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74565,"src":"26115:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26115:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80689,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26045:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26045:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80702,"nodeType":"ExpressionStatement","src":"26045:107:165"},{"assignments":[80704],"declarations":[{"constant":false,"id":80704,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"26171:17:165","nodeType":"VariableDeclaration","scope":80898,"src":"26163:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80703,"name":"uint256","nodeType":"ElementaryTypeName","src":"26163:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80706,"initialValue":{"hexValue":"30","id":80705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26191:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26163:29:165"},{"body":{"id":80722,"nodeType":"Block","src":"26215:142:165","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":80709,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80704,"src":"26242:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80708,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26233:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26233:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26272: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":80712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26264:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26264:7:165","typeDescriptions":{}}},"id":80714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26264:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26233:41:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80718,"nodeType":"IfStatement","src":"26229:85:165","trueBody":{"id":80717,"nodeType":"Block","src":"26276:38:165","statements":[{"id":80716,"nodeType":"Break","src":"26294:5:165"}]}},{"expression":{"id":80720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26327:19:165","subExpression":{"id":80719,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80704,"src":"26327:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80721,"nodeType":"ExpressionStatement","src":"26327:19:165"}]},"condition":{"hexValue":"74727565","id":80707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26209:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":80723,"nodeType":"WhileStatement","src":"26202:155:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80725,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80641,"src":"26375:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26387:6:165","memberName":"length","nodeType":"MemberAccess","src":"26375:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80727,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80704,"src":"26397:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26375:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":80730,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80641,"src":"26440:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26452:6:165","memberName":"length","nodeType":"MemberAccess","src":"26440:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80732,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80704,"src":"26460:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80729,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"26416:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":80733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26416:62:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80724,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26367:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26367:112:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80735,"nodeType":"ExpressionStatement","src":"26367:112:165"},{"body":{"id":80768,"nodeType":"Block","src":"26539:174:165","statements":[{"assignments":[80748],"declarations":[{"constant":false,"id":80748,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"26561:16:165","nodeType":"VariableDeclaration","scope":80768,"src":"26553:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80747,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26553:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80752,"initialValue":{"arguments":[{"id":80750,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80737,"src":"26589:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80749,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26580:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26580:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26553:38:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":80754,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80641,"src":"26613:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80756,"indexExpression":{"id":80755,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80737,"src":"26625:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26613:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80757,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80748,"src":"26631:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26613:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80760,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80737,"src":"26665:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":80761,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80641,"src":"26668:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80763,"indexExpression":{"id":80762,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80737,"src":"26680:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26668:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80764,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80748,"src":"26684: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":80759,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74581,"src":"26649: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":80765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26649:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80753,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26605:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26605:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80767,"nodeType":"ExpressionStatement","src":"26605:97:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80740,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80737,"src":"26510:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80741,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80641,"src":"26514:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26526:6:165","memberName":"length","nodeType":"MemberAccess","src":"26514:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26510:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80769,"initializationExpression":{"assignments":[80737],"declarations":[{"constant":false,"id":80737,"mutability":"mutable","name":"i","nameLocation":"26503:1:165","nodeType":"VariableDeclaration","scope":80769,"src":"26495:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80736,"name":"uint256","nodeType":"ElementaryTypeName","src":"26495:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80739,"initialValue":{"hexValue":"30","id":80738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26507:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26495:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26534:3:165","subExpression":{"id":80744,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80737,"src":"26534:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80746,"nodeType":"ExpressionStatement","src":"26534:3:165"},"nodeType":"ForStatement","src":"26490:223:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80771,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26789:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26795:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"26789:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":80773,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80643,"src":"26808:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26789:28:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80776,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80643,"src":"26836:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80775,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74586,"src":"26819:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":80777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26819:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26781:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26781:66:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80779,"nodeType":"ExpressionStatement","src":"26781:66:165"},{"assignments":[80781],"declarations":[{"constant":false,"id":80781,"mutability":"mutable","name":"structHash","nameLocation":"26866:10:165","nodeType":"VariableDeclaration","scope":80898,"src":"26858:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26858:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80800,"initialValue":{"arguments":[{"arguments":[{"id":80785,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79499,"src":"26930:42:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80786,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80636,"src":"26990:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80787,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80638,"src":"27018:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":80791,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80641,"src":"27070: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":80789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27053:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27057:12:165","memberName":"encodePacked","nodeType":"MemberAccess","src":"27053:16:165","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27053:29: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":"27043:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27043:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":80795,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80636,"src":"27111:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80794,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43672,"src":"27101:9:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":80796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27101:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80797,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80643,"src":"27140: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":80783,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26902:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26906:6:165","memberName":"encode","nodeType":"MemberAccess","src":"26902:10:165","typeDescriptions":{"typeIdentifier":"t_function_abiencode_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":"26902:261:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80782,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26879: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":"26879:294:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26858:315:165"},{"assignments":[80802],"declarations":[{"constant":false,"id":80802,"mutability":"mutable","name":"hash","nameLocation":"27192:4:165","nodeType":"VariableDeclaration","scope":80898,"src":"27184:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27184:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80806,"initialValue":{"arguments":[{"id":80804,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80781,"src":"27216:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80803,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"27199:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":80805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27199:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27184:43:165"},{"assignments":[80808],"declarations":[{"constant":false,"id":80808,"mutability":"mutable","name":"signer","nameLocation":"27246:6:165","nodeType":"VariableDeclaration","scope":80898,"src":"27238:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80807,"name":"address","nodeType":"ElementaryTypeName","src":"27238:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80816,"initialValue":{"arguments":[{"id":80811,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80802,"src":"27269:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80812,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80645,"src":"27275:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80813,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"27280:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80814,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"27285: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":80809,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"27255:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$51038_$","typeString":"type(library ECDSA)"}},"id":80810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27261:7:165","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50988,"src":"27255: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":80815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27255:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27238:51:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80818,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80808,"src":"27307:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80819,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80636,"src":"27317:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27307:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80822,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80808,"src":"27343:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80823,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80636,"src":"27351:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":80821,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74593,"src":"27329:13:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":80824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27329:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80817,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27299:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27299:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80826,"nodeType":"ExpressionStatement","src":"27299:64:165"},{"assignments":[80829],"declarations":[{"constant":false,"id":80829,"mutability":"mutable","name":"_wrappedVara","nameLocation":"27387:12:165","nodeType":"VariableDeclaration","scope":80898,"src":"27374:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"},"typeName":{"id":80828,"nodeType":"UserDefinedTypeName","pathNode":{"id":80827,"name":"IWrappedVara","nameLocations":["27374:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75001,"src":"27374:12:165"},"referencedDeclaration":75001,"src":"27374:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80835,"initialValue":{"arguments":[{"expression":{"expression":{"id":80831,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80672,"src":"27415:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27422:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"27415:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27436:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82918,"src":"27415:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80830,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"27402:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75001_$","typeString":"type(contract IWrappedVara)"}},"id":80834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27402:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"27374:74:165"},{"assignments":[80837],"declarations":[{"constant":false,"id":80837,"mutability":"mutable","name":"fee","nameLocation":"27467:3:165","nodeType":"VariableDeclaration","scope":80898,"src":"27459:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27459:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80845,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80838,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80672,"src":"27485:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27492:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27485:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27505:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83091,"src":"27485:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":80841,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80672,"src":"27536:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27543:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27536:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27556:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83094,"src":"27536:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27485:100:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27459:126:165"},{"clauses":[{"block":{"id":80859,"nodeType":"Block","src":"27677:2:165","statements":[]},"errorName":"","id":80860,"nodeType":"TryCatchClause","src":"27677:2:165"},{"block":{"id":80861,"nodeType":"Block","src":"27686:2:165","statements":[]},"errorName":"","id":80862,"nodeType":"TryCatchClause","src":"27680:8:165"}],"externalCall":{"arguments":[{"id":80848,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80636,"src":"27619:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80851,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27639:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":80850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27631:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80849,"name":"address","nodeType":"ElementaryTypeName","src":"27631:7:165","typeDescriptions":{}}},"id":80852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27631:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80853,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80837,"src":"27646:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80854,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80643,"src":"27651:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80855,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80651,"src":"27662:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80856,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80653,"src":"27667:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80857,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80655,"src":"27672: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":80846,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80829,"src":"27599:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":80847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27612:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"27599: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":80858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27599:77:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80863,"nodeType":"TryStatement","src":"27595:93:165"},{"assignments":[80865],"declarations":[{"constant":false,"id":80865,"mutability":"mutable","name":"success","nameLocation":"27702:7:165","nodeType":"VariableDeclaration","scope":80898,"src":"27697:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80864,"name":"bool","nodeType":"ElementaryTypeName","src":"27697:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80875,"initialValue":{"arguments":[{"id":80868,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80636,"src":"27738:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80871,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27758:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":80870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27750:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80869,"name":"address","nodeType":"ElementaryTypeName","src":"27750:7:165","typeDescriptions":{}}},"id":80872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27750:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80873,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80837,"src":"27765: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":80866,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80829,"src":"27712:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":80867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27725:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"27712: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":80874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27712:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27697:72:165"},{"expression":{"arguments":[{"id":80877,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80865,"src":"27787:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80878,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74598,"src":"27796:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27796:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80876,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27779:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27779:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80881,"nodeType":"ExpressionStatement","src":"27779:38:165"},{"expression":{"id":80892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80882,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80672,"src":"27828:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27835:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27828:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27848:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"27828:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80888,"indexExpression":{"id":80885,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80638,"src":"27854:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27828:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80889,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"27865:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":80890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27870:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"27865:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83026_$","typeString":"type(enum Gear.CodeState)"}},"id":80891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27880:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83023,"src":"27865:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"src":"27828:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"id":80893,"nodeType":"ExpressionStatement","src":"27828:71:165"},{"eventCall":{"arguments":[{"id":80895,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80638,"src":"27939:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80894,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74512,"src":"27915:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27915:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80897,"nodeType":"EmitStatement","src":"27910:37:165"}]},"baseFunctions":[74899],"documentation":{"id":80634,"nodeType":"StructuredDocumentation","src":"24035: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":80658,"kind":"modifierInvocation","modifierName":{"id":80657,"name":"whenNotPaused","nameLocations":["25832:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"25832:13:165"},"nodeType":"ModifierInvocation","src":"25832:13:165"}],"name":"requestCodeValidationOnBehalf","nameLocation":"25545:29:165","parameters":{"id":80656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80636,"mutability":"mutable","name":"_requester","nameLocation":"25592:10:165","nodeType":"VariableDeclaration","scope":80899,"src":"25584:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80635,"name":"address","nodeType":"ElementaryTypeName","src":"25584:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80638,"mutability":"mutable","name":"_codeId","nameLocation":"25620:7:165","nodeType":"VariableDeclaration","scope":80899,"src":"25612:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25612:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80641,"mutability":"mutable","name":"_blobHashes","nameLocation":"25656:11:165","nodeType":"VariableDeclaration","scope":80899,"src":"25637:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25637:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80640,"nodeType":"ArrayTypeName","src":"25637:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":80643,"mutability":"mutable","name":"_deadline","nameLocation":"25685:9:165","nodeType":"VariableDeclaration","scope":80899,"src":"25677:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80642,"name":"uint256","nodeType":"ElementaryTypeName","src":"25677:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80645,"mutability":"mutable","name":"_v1","nameLocation":"25710:3:165","nodeType":"VariableDeclaration","scope":80899,"src":"25704:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80644,"name":"uint8","nodeType":"ElementaryTypeName","src":"25704:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80647,"mutability":"mutable","name":"_r1","nameLocation":"25731:3:165","nodeType":"VariableDeclaration","scope":80899,"src":"25723:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25723:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80649,"mutability":"mutable","name":"_s1","nameLocation":"25752:3:165","nodeType":"VariableDeclaration","scope":80899,"src":"25744:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25744:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80651,"mutability":"mutable","name":"_v2","nameLocation":"25771:3:165","nodeType":"VariableDeclaration","scope":80899,"src":"25765:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80650,"name":"uint8","nodeType":"ElementaryTypeName","src":"25765:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80653,"mutability":"mutable","name":"_r2","nameLocation":"25792:3:165","nodeType":"VariableDeclaration","scope":80899,"src":"25784:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25784:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80655,"mutability":"mutable","name":"_s2","nameLocation":"25813:3:165","nodeType":"VariableDeclaration","scope":80899,"src":"25805:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25805:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25574:248:165"},"returnParameters":{"id":80659,"nodeType":"ParameterList","parameters":[],"src":"25846:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80944,"nodeType":"FunctionDefinition","src":"29034:396:165","nodes":[],"body":{"id":80943,"nodeType":"Block","src":"29188:242:165","nodes":[],"statements":[{"assignments":[80914,null],"declarations":[{"constant":false,"id":80914,"mutability":"mutable","name":"mirror","nameLocation":"29207:6:165","nodeType":"VariableDeclaration","scope":80943,"src":"29199:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80913,"name":"address","nodeType":"ElementaryTypeName","src":"29199:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":80920,"initialValue":{"arguments":[{"id":80916,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80902,"src":"29233:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80917,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80904,"src":"29242:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":80918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29249: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":80915,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81471,"src":"29218: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":80919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29218: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":"29198:56:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80925,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80906,"src":"29305:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29337: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":80927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29329:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80926,"name":"address","nodeType":"ElementaryTypeName","src":"29329:7:165","typeDescriptions":{}}},"id":80929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29329:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"29305:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":80933,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80906,"src":"29355:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"29305:70:165","trueExpression":{"expression":{"id":80931,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29342:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29346:6:165","memberName":"sender","nodeType":"MemberAccess","src":"29342:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80935,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79930,"src":"29377:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":80936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29377:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":80937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29391:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":80938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29397: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":80922,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80914,"src":"29273:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80921,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"29265:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":80923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29265:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":80924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29294:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"29265: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":80939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29265:134:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80940,"nodeType":"ExpressionStatement","src":"29265:134:165"},{"expression":{"id":80941,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80914,"src":"29417:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80912,"id":80942,"nodeType":"Return","src":"29410:13:165"}]},"baseFunctions":[74911],"documentation":{"id":80900,"nodeType":"StructuredDocumentation","src":"27960: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":80909,"kind":"modifierInvocation","modifierName":{"id":80908,"name":"whenNotPaused","nameLocations":["29144:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"29144:13:165"},"nodeType":"ModifierInvocation","src":"29144:13:165"}],"name":"createProgram","nameLocation":"29043:13:165","parameters":{"id":80907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80902,"mutability":"mutable","name":"_codeId","nameLocation":"29065:7:165","nodeType":"VariableDeclaration","scope":80944,"src":"29057:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29057:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80904,"mutability":"mutable","name":"_salt","nameLocation":"29082:5:165","nodeType":"VariableDeclaration","scope":80944,"src":"29074:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29074:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80906,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"29097:20:165","nodeType":"VariableDeclaration","scope":80944,"src":"29089:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80905,"name":"address","nodeType":"ElementaryTypeName","src":"29089:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29056:62:165"},"returnParameters":{"id":80912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80944,"src":"29175:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80910,"name":"address","nodeType":"ElementaryTypeName","src":"29175:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29174:9:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81049,"nodeType":"FunctionDefinition","src":"30903:1031:165","nodes":[],"body":{"id":81048,"nodeType":"Block","src":"31208:726:165","nodes":[],"statements":[{"assignments":[80969,80972],"declarations":[{"constant":false,"id":80969,"mutability":"mutable","name":"mirror","nameLocation":"31227:6:165","nodeType":"VariableDeclaration","scope":81048,"src":"31219:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80968,"name":"address","nodeType":"ElementaryTypeName","src":"31219:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80972,"mutability":"mutable","name":"router","nameLocation":"31251:6:165","nodeType":"VariableDeclaration","scope":81048,"src":"31235:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80971,"nodeType":"UserDefinedTypeName","pathNode":{"id":80970,"name":"Storage","nameLocations":["31235:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"31235:7:165"},"referencedDeclaration":74490,"src":"31235:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80978,"initialValue":{"arguments":[{"id":80974,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80947,"src":"31276:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80975,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80949,"src":"31285:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":80976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31292: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":80973,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81471,"src":"31261: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":80977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31261: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":"31218:79:165"},{"assignments":[80981],"declarations":[{"constant":false,"id":80981,"mutability":"mutable","name":"_wrappedVara","nameLocation":"31321:12:165","nodeType":"VariableDeclaration","scope":81048,"src":"31308:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"},"typeName":{"id":80980,"nodeType":"UserDefinedTypeName","pathNode":{"id":80979,"name":"IWrappedVara","nameLocations":["31308:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75001,"src":"31308:12:165"},"referencedDeclaration":75001,"src":"31308:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80987,"initialValue":{"arguments":[{"expression":{"expression":{"id":80983,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80972,"src":"31349:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31356:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"31349:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31370:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82918,"src":"31349:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80982,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"31336:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75001_$","typeString":"type(contract IWrappedVara)"}},"id":80986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31336:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"31308:74:165"},{"clauses":[{"block":{"id":81002,"nodeType":"Block","src":"31494:2:165","statements":[]},"errorName":"","id":81003,"nodeType":"TryCatchClause","src":"31494:2:165"},{"block":{"id":81004,"nodeType":"Block","src":"31503:2:165","statements":[]},"errorName":"","id":81005,"nodeType":"TryCatchClause","src":"31497:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80990,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31417:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31421:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31417:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80994,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31437:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":80993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31429:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80992,"name":"address","nodeType":"ElementaryTypeName","src":"31429:7:165","typeDescriptions":{}}},"id":80995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31429:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80996,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80953,"src":"31444:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":80997,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80955,"src":"31471:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80998,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"31482:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80999,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31486:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81000,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80961,"src":"31490: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":80988,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80981,"src":"31397:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":80989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31410:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"31397: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":81001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31397:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81006,"nodeType":"TryStatement","src":"31393:112:165"},{"assignments":[81008],"declarations":[{"constant":false,"id":81008,"mutability":"mutable","name":"success","nameLocation":"31519:7:165","nodeType":"VariableDeclaration","scope":81048,"src":"31514:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81007,"name":"bool","nodeType":"ElementaryTypeName","src":"31514:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81019,"initialValue":{"arguments":[{"expression":{"id":81011,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31555:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31559:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31555:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81015,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31575:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":81014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31567:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81013,"name":"address","nodeType":"ElementaryTypeName","src":"31567:7:165","typeDescriptions":{}}},"id":81016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31567:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81017,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80953,"src":"31582: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":81009,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80981,"src":"31529:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":81010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31542:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"31529: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":81018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31529:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31514:94:165"},{"expression":{"arguments":[{"id":81021,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81008,"src":"31626:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81022,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74598,"src":"31635:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31635:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81020,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31618:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31618:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81025,"nodeType":"ExpressionStatement","src":"31618:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81030,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80951,"src":"31724:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31756: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":81032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31748:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81031,"name":"address","nodeType":"ElementaryTypeName","src":"31748:7:165","typeDescriptions":{}}},"id":81034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31748:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31724:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81038,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80951,"src":"31774:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31724:70:165","trueExpression":{"expression":{"id":81036,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31761:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31765:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31761:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81040,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79930,"src":"31812:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31812:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31842:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":81043,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80953,"src":"31864: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":81027,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80969,"src":"31675:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81026,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"31667:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31667:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31696:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"31667: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":81044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31667:236:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81045,"nodeType":"ExpressionStatement","src":"31667:236:165"},{"expression":{"id":81046,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80969,"src":"31921:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80967,"id":81047,"nodeType":"Return","src":"31914:13:165"}]},"baseFunctions":[74933],"documentation":{"id":80945,"nodeType":"StructuredDocumentation","src":"29436: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":80964,"kind":"modifierInvocation","modifierName":{"id":80963,"name":"whenNotPaused","nameLocations":["31176:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"31176:13:165"},"nodeType":"ModifierInvocation","src":"31176:13:165"}],"name":"createProgramWithExecutableBalance","nameLocation":"30912:34:165","parameters":{"id":80962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80947,"mutability":"mutable","name":"_codeId","nameLocation":"30964:7:165","nodeType":"VariableDeclaration","scope":81049,"src":"30956:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30956:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80949,"mutability":"mutable","name":"_salt","nameLocation":"30989:5:165","nodeType":"VariableDeclaration","scope":81049,"src":"30981:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30981:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80951,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"31012:20:165","nodeType":"VariableDeclaration","scope":81049,"src":"31004:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80950,"name":"address","nodeType":"ElementaryTypeName","src":"31004:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80953,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"31050:25:165","nodeType":"VariableDeclaration","scope":81049,"src":"31042:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80952,"name":"uint128","nodeType":"ElementaryTypeName","src":"31042:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80955,"mutability":"mutable","name":"_deadline","nameLocation":"31093:9:165","nodeType":"VariableDeclaration","scope":81049,"src":"31085:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80954,"name":"uint256","nodeType":"ElementaryTypeName","src":"31085:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80957,"mutability":"mutable","name":"_v","nameLocation":"31118:2:165","nodeType":"VariableDeclaration","scope":81049,"src":"31112:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80956,"name":"uint8","nodeType":"ElementaryTypeName","src":"31112:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80959,"mutability":"mutable","name":"_r","nameLocation":"31138:2:165","nodeType":"VariableDeclaration","scope":81049,"src":"31130:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80958,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31130:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80961,"mutability":"mutable","name":"_s","nameLocation":"31158:2:165","nodeType":"VariableDeclaration","scope":81049,"src":"31150:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31150:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30946:220:165"},"returnParameters":{"id":80967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81049,"src":"31199:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80965,"name":"address","nodeType":"ElementaryTypeName","src":"31199:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31198:9:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81095,"nodeType":"FunctionDefinition","src":"33096:448:165","nodes":[],"body":{"id":81094,"nodeType":"Block","src":"33299:245:165","nodes":[],"statements":[{"assignments":[81066,null],"declarations":[{"constant":false,"id":81066,"mutability":"mutable","name":"mirror","nameLocation":"33318:6:165","nodeType":"VariableDeclaration","scope":81094,"src":"33310:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81065,"name":"address","nodeType":"ElementaryTypeName","src":"33310:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81072,"initialValue":{"arguments":[{"id":81068,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81052,"src":"33344:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81069,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81054,"src":"33353:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33360: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":81067,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81471,"src":"33329: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":81071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33329: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":"33309:57:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81077,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81056,"src":"33417:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33449: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":81079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33441:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81078,"name":"address","nodeType":"ElementaryTypeName","src":"33441:7:165","typeDescriptions":{}}},"id":81081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33441:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"33417:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81085,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81056,"src":"33467:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33417:70:165","trueExpression":{"expression":{"id":81083,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33454:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33458:6:165","memberName":"sender","nodeType":"MemberAccess","src":"33454:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81087,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81058,"src":"33489:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33504:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":81089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33511: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":81074,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81066,"src":"33385:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81073,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"33377:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33377:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33406:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"33377: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":81090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33377:136:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81091,"nodeType":"ExpressionStatement","src":"33377:136:165"},{"expression":{"id":81092,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81066,"src":"33531:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81064,"id":81093,"nodeType":"Return","src":"33524:13:165"}]},"baseFunctions":[74947],"documentation":{"id":81050,"nodeType":"StructuredDocumentation","src":"31940: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":81061,"kind":"modifierInvocation","modifierName":{"id":81060,"name":"whenNotPaused","nameLocations":["33267:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"33267:13:165"},"nodeType":"ModifierInvocation","src":"33267:13:165"}],"name":"createProgramWithAbiInterface","nameLocation":"33105:29:165","parameters":{"id":81059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81052,"mutability":"mutable","name":"_codeId","nameLocation":"33152:7:165","nodeType":"VariableDeclaration","scope":81095,"src":"33144:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33144:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81054,"mutability":"mutable","name":"_salt","nameLocation":"33177:5:165","nodeType":"VariableDeclaration","scope":81095,"src":"33169:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33169:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81056,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"33200:20:165","nodeType":"VariableDeclaration","scope":81095,"src":"33192:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81055,"name":"address","nodeType":"ElementaryTypeName","src":"33192:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81058,"mutability":"mutable","name":"_abiInterface","nameLocation":"33238:13:165","nodeType":"VariableDeclaration","scope":81095,"src":"33230:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81057,"name":"address","nodeType":"ElementaryTypeName","src":"33230:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33134:123:165"},"returnParameters":{"id":81064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81095,"src":"33290:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81062,"name":"address","nodeType":"ElementaryTypeName","src":"33290:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33289:9:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81201,"nodeType":"FunctionDefinition","src":"35100:1080:165","nodes":[],"body":{"id":81200,"nodeType":"Block","src":"35451:729:165","nodes":[],"statements":[{"assignments":[81122,81125],"declarations":[{"constant":false,"id":81122,"mutability":"mutable","name":"mirror","nameLocation":"35470:6:165","nodeType":"VariableDeclaration","scope":81200,"src":"35462:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81121,"name":"address","nodeType":"ElementaryTypeName","src":"35462:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81125,"mutability":"mutable","name":"router","nameLocation":"35494:6:165","nodeType":"VariableDeclaration","scope":81200,"src":"35478:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81124,"nodeType":"UserDefinedTypeName","pathNode":{"id":81123,"name":"Storage","nameLocations":["35478:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"35478:7:165"},"referencedDeclaration":74490,"src":"35478:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81131,"initialValue":{"arguments":[{"id":81127,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81098,"src":"35519:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81128,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81100,"src":"35528:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35535: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":81126,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81471,"src":"35504: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":81130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35504: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":"35461:80:165"},{"assignments":[81134],"declarations":[{"constant":false,"id":81134,"mutability":"mutable","name":"_wrappedVara","nameLocation":"35565:12:165","nodeType":"VariableDeclaration","scope":81200,"src":"35552:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"},"typeName":{"id":81133,"nodeType":"UserDefinedTypeName","pathNode":{"id":81132,"name":"IWrappedVara","nameLocations":["35552:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75001,"src":"35552:12:165"},"referencedDeclaration":75001,"src":"35552:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81140,"initialValue":{"arguments":[{"expression":{"expression":{"id":81136,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81125,"src":"35593:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35600:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"35593:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35614:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82918,"src":"35593:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81135,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"35580:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75001_$","typeString":"type(contract IWrappedVara)"}},"id":81139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35580:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"35552:74:165"},{"clauses":[{"block":{"id":81155,"nodeType":"Block","src":"35738:2:165","statements":[]},"errorName":"","id":81156,"nodeType":"TryCatchClause","src":"35738:2:165"},{"block":{"id":81157,"nodeType":"Block","src":"35747:2:165","statements":[]},"errorName":"","id":81158,"nodeType":"TryCatchClause","src":"35741:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81143,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35661:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35665:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35661:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81147,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35681:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":81146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35673:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81145,"name":"address","nodeType":"ElementaryTypeName","src":"35673:7:165","typeDescriptions":{}}},"id":81148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35673:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81149,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81106,"src":"35688:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81150,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81108,"src":"35715:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81151,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81110,"src":"35726:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81152,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"35730:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81153,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81114,"src":"35734: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":81141,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81134,"src":"35641:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":81142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35654:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"35641: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":81154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35641:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81159,"nodeType":"TryStatement","src":"35637:112:165"},{"assignments":[81161],"declarations":[{"constant":false,"id":81161,"mutability":"mutable","name":"success","nameLocation":"35763:7:165","nodeType":"VariableDeclaration","scope":81200,"src":"35758:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81160,"name":"bool","nodeType":"ElementaryTypeName","src":"35758:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81172,"initialValue":{"arguments":[{"expression":{"id":81164,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35799:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35803:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35799:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81168,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35819:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":81167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35811:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81166,"name":"address","nodeType":"ElementaryTypeName","src":"35811:7:165","typeDescriptions":{}}},"id":81169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35811:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81170,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81106,"src":"35826: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":81162,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81134,"src":"35773:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":81163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35786:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"35773: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":81171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35773:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"35758:94:165"},{"expression":{"arguments":[{"id":81174,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81161,"src":"35870:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81175,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74598,"src":"35879:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35879:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"35862:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35862:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81178,"nodeType":"ExpressionStatement","src":"35862:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81183,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81102,"src":"35968:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36000: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":81185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35992:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81184,"name":"address","nodeType":"ElementaryTypeName","src":"35992:7:165","typeDescriptions":{}}},"id":81187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35992:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"35968:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81191,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81102,"src":"36018:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35968:70:165","trueExpression":{"expression":{"id":81189,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36005:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36009:6:165","memberName":"sender","nodeType":"MemberAccess","src":"36005:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81193,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81104,"src":"36056:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36087:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":81195,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81106,"src":"36110: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":81180,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81122,"src":"35919:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81179,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"35911:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35911:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35940:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"35911: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":81196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35911:238:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81197,"nodeType":"ExpressionStatement","src":"35911:238:165"},{"expression":{"id":81198,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81122,"src":"36167:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81120,"id":81199,"nodeType":"Return","src":"36160:13:165"}]},"baseFunctions":[74971],"documentation":{"id":81096,"nodeType":"StructuredDocumentation","src":"33550: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":81117,"kind":"modifierInvocation","modifierName":{"id":81116,"name":"whenNotPaused","nameLocations":["35419:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"35419:13:165"},"nodeType":"ModifierInvocation","src":"35419:13:165"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"35109:49:165","parameters":{"id":81115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81098,"mutability":"mutable","name":"_codeId","nameLocation":"35176:7:165","nodeType":"VariableDeclaration","scope":81201,"src":"35168:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35168:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81100,"mutability":"mutable","name":"_salt","nameLocation":"35201:5:165","nodeType":"VariableDeclaration","scope":81201,"src":"35193:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35193:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81102,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"35224:20:165","nodeType":"VariableDeclaration","scope":81201,"src":"35216:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81101,"name":"address","nodeType":"ElementaryTypeName","src":"35216:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81104,"mutability":"mutable","name":"_abiInterface","nameLocation":"35262:13:165","nodeType":"VariableDeclaration","scope":81201,"src":"35254:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81103,"name":"address","nodeType":"ElementaryTypeName","src":"35254:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81106,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"35293:25:165","nodeType":"VariableDeclaration","scope":81201,"src":"35285:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81105,"name":"uint128","nodeType":"ElementaryTypeName","src":"35285:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81108,"mutability":"mutable","name":"_deadline","nameLocation":"35336:9:165","nodeType":"VariableDeclaration","scope":81201,"src":"35328:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81107,"name":"uint256","nodeType":"ElementaryTypeName","src":"35328:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81110,"mutability":"mutable","name":"_v","nameLocation":"35361:2:165","nodeType":"VariableDeclaration","scope":81201,"src":"35355:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81109,"name":"uint8","nodeType":"ElementaryTypeName","src":"35355:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81112,"mutability":"mutable","name":"_r","nameLocation":"35381:2:165","nodeType":"VariableDeclaration","scope":81201,"src":"35373:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35373:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81114,"mutability":"mutable","name":"_s","nameLocation":"35401:2:165","nodeType":"VariableDeclaration","scope":81201,"src":"35393:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35393:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35158:251:165"},"returnParameters":{"id":81120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81201,"src":"35442:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81118,"name":"address","nodeType":"ElementaryTypeName","src":"35442:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35441:9:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81368,"nodeType":"FunctionDefinition","src":"36648:2151:165","nodes":[],"body":{"id":81367,"nodeType":"Block","src":"36824:1975:165","nodes":[],"statements":[{"assignments":[81218],"declarations":[{"constant":false,"id":81218,"mutability":"mutable","name":"router","nameLocation":"36850:6:165","nodeType":"VariableDeclaration","scope":81367,"src":"36834:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81217,"nodeType":"UserDefinedTypeName","pathNode":{"id":81216,"name":"Storage","nameLocations":["36834:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"36834:7:165"},"referencedDeclaration":74490,"src":"36834:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81221,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81219,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"36859: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":81220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36859:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"36834:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81223,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"36887:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36894:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"36887:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36907:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"36887:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36923: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":81227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36915:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36915:7:165","typeDescriptions":{}}},"id":81229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36915:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"36887:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81231,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74562,"src":"36927:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36927:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81222,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"36879:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36879:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81234,"nodeType":"ExpressionStatement","src":"36879:82:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81235,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"37125:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37132:8:165","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":74461,"src":"37125:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37144:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37125:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81262,"nodeType":"IfStatement","src":"37121:295:165","trueBody":{"id":81261,"nodeType":"Block","src":"37147:269:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":81242,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"37193:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37200:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":82956,"src":"37193:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81244,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"37211:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37218:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":82965,"src":"37211:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":81240,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"37169:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37174:18:165","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":83474,"src":"37169:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":81246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37169:56:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81247,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74600,"src":"37227:24:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37227:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37161:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37161:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81250,"nodeType":"ExpressionStatement","src":"37161:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81252,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37338:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37344:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"37338:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":81254,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"37356:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37363:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82959,"src":"37356:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37338:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81257,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"37379:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37379:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81251,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37330:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37330:75:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81260,"nodeType":"ExpressionStatement","src":"37330:75:165"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81264,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"37529:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37536:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"37529:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37557:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"37529:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":81267,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"37565:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37572:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":82962,"src":"37565:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37529:69:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81270,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74604,"src":"37600:33:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37600:35:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81263,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37508:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37508:137:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81273,"nodeType":"ExpressionStatement","src":"37508:137:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81275,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"37664:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37671:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"37664:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37692:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83031,"src":"37664:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":81278,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"37705:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37712:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82959,"src":"37705:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37664:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81281,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74606,"src":"37728:22:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37728:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81274,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37656:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37656:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81284,"nodeType":"ExpressionStatement","src":"37656:97:165"},{"assignments":[81286],"declarations":[{"constant":false,"id":81286,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"37772:20:165","nodeType":"VariableDeclaration","scope":81367,"src":"37764:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37764:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81291,"initialValue":{"arguments":[{"id":81288,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"37808:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81289,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"37816:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_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_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81287,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81534,"src":"37795:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$82986_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37795:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37764:59:165"},{"assignments":[81293],"declarations":[{"constant":false,"id":81293,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"37841:20:165","nodeType":"VariableDeclaration","scope":81367,"src":"37833:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81292,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37833:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81298,"initialValue":{"arguments":[{"id":81295,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"37877:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81296,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"37885:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_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_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81294,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81676,"src":"37864:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$82986_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37864:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37833:59:165"},{"assignments":[81300],"declarations":[{"constant":false,"id":81300,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"37910:22:165","nodeType":"VariableDeclaration","scope":81367,"src":"37902:30:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37902:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81305,"initialValue":{"arguments":[{"id":81302,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"37950:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81303,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"37958:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_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_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81301,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81833,"src":"37935:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$82986_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37935:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37902:63:165"},{"assignments":[81307],"declarations":[{"constant":false,"id":81307,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"37983:25:165","nodeType":"VariableDeclaration","scope":81367,"src":"37975:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81306,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37975:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81312,"initialValue":{"arguments":[{"id":81309,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"38029:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81310,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"38037:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_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_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81308,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81979,"src":"38011:17:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$82986_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38011:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37975:69:165"},{"assignments":[81314],"declarations":[{"constant":false,"id":81314,"mutability":"mutable","name":"_batchHash","nameLocation":"38063:10:165","nodeType":"VariableDeclaration","scope":81367,"src":"38055:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81313,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38055:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81330,"initialValue":{"arguments":[{"expression":{"id":81317,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"38114:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38121:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":82956,"src":"38114:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81319,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"38144:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38151:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82959,"src":"38144:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":81321,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"38179:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38186:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":82962,"src":"38179:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81323,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"38226:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38233:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":82965,"src":"38226:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81325,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81286,"src":"38253:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81326,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81293,"src":"38287:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81327,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81300,"src":"38321:22:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81328,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"38357: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":81315,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"38076:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38081:19:165","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83318,"src":"38076: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":81329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38076:316:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38055:337:165"},{"expression":{"id":81337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81331,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"38403:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38410:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"38403:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38431:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"38403:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81336,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81314,"src":"38438:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38403:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81338,"nodeType":"ExpressionStatement","src":"38403:45:165"},{"expression":{"id":81346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81339,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"38458:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38465:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"38458:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83032_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38486:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83031,"src":"38458:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81344,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"38498:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38505:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82959,"src":"38498:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"38458:61:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":81347,"nodeType":"ExpressionStatement","src":"38458:61:165"},{"eventCall":{"arguments":[{"id":81349,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81314,"src":"38550:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81348,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74495,"src":"38535:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38535:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81351,"nodeType":"EmitStatement","src":"38530:31:165"},{"expression":{"arguments":[{"arguments":[{"id":81355,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"38636:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81356,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79484,"src":"38644:17:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81357,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81314,"src":"38663:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81358,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81208,"src":"38675:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"}},{"id":81359,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38691:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":81360,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"38704:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38711:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82959,"src":"38704: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_$83199","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":81353,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"38593:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38598:20:165","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":83760,"src":"38593:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$83199_$_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":81362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38593:146:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81363,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74634,"src":"38753:27:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38753:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81352,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38572:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38572:220:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81366,"nodeType":"ExpressionStatement","src":"38572:220:165"}]},"baseFunctions":[74984],"documentation":{"id":81202,"nodeType":"StructuredDocumentation","src":"36186:457:165","text":" @dev Commits new batch of changes to `Router` state.\n `CodeGotValidated` event is emitted for each code in commitment.\n `AnnouncesCommitted` 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":"b24fcac0","implemented":true,"kind":"function","modifiers":[{"id":81214,"kind":"modifierInvocation","modifierName":{"id":81213,"name":"nonReentrant","nameLocations":["36811:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":43886,"src":"36811:12:165"},"nodeType":"ModifierInvocation","src":"36811:12:165"}],"name":"commitBatch","nameLocation":"36657:11:165","parameters":{"id":81212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81205,"mutability":"mutable","name":"_batch","nameLocation":"36708:6:165","nodeType":"VariableDeclaration","scope":81368,"src":"36678:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81204,"nodeType":"UserDefinedTypeName","pathNode":{"id":81203,"name":"Gear.BatchCommitment","nameLocations":["36678:4:165","36683:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"36678:20:165"},"referencedDeclaration":82986,"src":"36678:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":81208,"mutability":"mutable","name":"_signatureType","nameLocation":"36743:14:165","nodeType":"VariableDeclaration","scope":81368,"src":"36724:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"},"typeName":{"id":81207,"nodeType":"UserDefinedTypeName","pathNode":{"id":81206,"name":"Gear.SignatureType","nameLocations":["36724:4:165","36729:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":83199,"src":"36724:18:165"},"referencedDeclaration":83199,"src":"36724:18:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83199","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":81211,"mutability":"mutable","name":"_signatures","nameLocation":"36784:11:165","nodeType":"VariableDeclaration","scope":81368,"src":"36767:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":81209,"name":"bytes","nodeType":"ElementaryTypeName","src":"36767:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":81210,"nodeType":"ArrayTypeName","src":"36767:7:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"36668:133:165"},"returnParameters":{"id":81215,"nodeType":"ParameterList","parameters":[],"src":"36824:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81471,"nodeType":"FunctionDefinition","src":"38843:934:165","nodes":[],"body":{"id":81470,"nodeType":"Block","src":"38957:820:165","nodes":[],"statements":[{"assignments":[81384],"declarations":[{"constant":false,"id":81384,"mutability":"mutable","name":"router","nameLocation":"38983:6:165","nodeType":"VariableDeclaration","scope":81470,"src":"38967:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81383,"nodeType":"UserDefinedTypeName","pathNode":{"id":81382,"name":"Storage","nameLocations":["38967:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"38967:7:165"},"referencedDeclaration":74490,"src":"38967:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81385,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"38992: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":81386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38992:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"38967:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81389,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81384,"src":"39019:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39026:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"39019:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39039:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"39019:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39055: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":81393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39047:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39047:7:165","typeDescriptions":{}}},"id":81395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39047:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39019:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81397,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74562,"src":"39059:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39059:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39011:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39011:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81400,"nodeType":"ExpressionStatement","src":"39011:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"},"id":81410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81402,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81384,"src":"39112:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39119:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39112:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39132:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"39112:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81406,"indexExpression":{"id":81405,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81370,"src":"39138:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39112:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81407,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"39150:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39155:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"39150:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83026_$","typeString":"type(enum Gear.CodeState)"}},"id":81409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39165:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83025,"src":"39150:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"src":"39112:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81411,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74596,"src":"39176:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39176:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81401,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39104:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39104:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81414,"nodeType":"ExpressionStatement","src":"39104:91:165"},{"assignments":[81416],"declarations":[{"constant":false,"id":81416,"mutability":"mutable","name":"salt","nameLocation":"39364:4:165","nodeType":"VariableDeclaration","scope":81470,"src":"39356:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39356:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81422,"initialValue":{"arguments":[{"id":81419,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81370,"src":"39406:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81420,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81372,"src":"39415:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81417,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"39371:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39378:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41482,"src":"39371:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":81421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39371:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39356:65:165"},{"assignments":[81424],"declarations":[{"constant":false,"id":81424,"mutability":"mutable","name":"actorId","nameLocation":"39439:7:165","nodeType":"VariableDeclaration","scope":81470,"src":"39431:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81423,"name":"address","nodeType":"ElementaryTypeName","src":"39431:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81443,"initialValue":{"condition":{"id":81425,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81374,"src":"39449:8:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":81438,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39572:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":81437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39564:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81436,"name":"address","nodeType":"ElementaryTypeName","src":"39564:7:165","typeDescriptions":{}}},"id":81439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39564:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81440,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81416,"src":"39579:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81434,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82720,"src":"39538:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$82720_$","typeString":"type(library Clones)"}},"id":81435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39545:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82489,"src":"39538:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39538:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"39449:135:165","trueExpression":{"arguments":[{"arguments":[{"id":81430,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39511:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82324","typeString":"contract Router"}],"id":81429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39503:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81428,"name":"address","nodeType":"ElementaryTypeName","src":"39503:7:165","typeDescriptions":{}}},"id":81431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39503:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81432,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81416,"src":"39518:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81426,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82804,"src":"39472:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$82804_$","typeString":"type(library ClonesSmall)"}},"id":81427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39484:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82742,"src":"39472:30:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39472:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"39431:153:165"},{"expression":{"id":81452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81444,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81384,"src":"39595:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39602:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39595:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39615:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"39595:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":81450,"indexExpression":{"id":81447,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81424,"src":"39624:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"39595:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81451,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81370,"src":"39635:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39595:47:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81453,"nodeType":"ExpressionStatement","src":"39595:47:165"},{"expression":{"id":81459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39652:35:165","subExpression":{"expression":{"expression":{"id":81454,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81384,"src":"39652:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39659:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39652:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"39672:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83082,"src":"39652:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81460,"nodeType":"ExpressionStatement","src":"39652:35:165"},{"eventCall":{"arguments":[{"id":81462,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81424,"src":"39718:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81463,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81370,"src":"39727:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81461,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74531,"src":"39703:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":81464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39703:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81465,"nodeType":"EmitStatement","src":"39698:37:165"},{"expression":{"components":[{"id":81466,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81424,"src":"39754:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81467,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81384,"src":"39763:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":81468,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39753:17:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":81381,"id":81469,"nodeType":"Return","src":"39746:24:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"38852:14:165","parameters":{"id":81375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81370,"mutability":"mutable","name":"_codeId","nameLocation":"38875:7:165","nodeType":"VariableDeclaration","scope":81471,"src":"38867:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38867:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81372,"mutability":"mutable","name":"_salt","nameLocation":"38892:5:165","nodeType":"VariableDeclaration","scope":81471,"src":"38884:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38884:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81374,"mutability":"mutable","name":"_isSmall","nameLocation":"38904:8:165","nodeType":"VariableDeclaration","scope":81471,"src":"38899:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81373,"name":"bool","nodeType":"ElementaryTypeName","src":"38899:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38866:47:165"},"returnParameters":{"id":81381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81377,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81471,"src":"38931:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81376,"name":"address","nodeType":"ElementaryTypeName","src":"38931:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81380,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81471,"src":"38940:15:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81379,"nodeType":"UserDefinedTypeName","pathNode":{"id":81378,"name":"Storage","nameLocations":["38940:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"38940:7:165"},"referencedDeclaration":74490,"src":"38940:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"38930:26:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81534,"nodeType":"FunctionDefinition","src":"39783:683:165","nodes":[],"body":{"id":81533,"nodeType":"Block","src":"39893:573:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81483,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"39911:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39918:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":82970,"src":"39911:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82940_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39934:6:165","memberName":"length","nodeType":"MemberAccess","src":"39911:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39944:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"39911:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81488,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74608,"src":"39947:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39947:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81482,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39903:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39903:70:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81491,"nodeType":"ExpressionStatement","src":"39903:70:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81492,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"39988:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39995:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":82970,"src":"39988:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82940_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40011:6:165","memberName":"length","nodeType":"MemberAccess","src":"39988:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40021:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"39988:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81502,"nodeType":"IfStatement","src":"39984:177:165","trueBody":{"id":81501,"nodeType":"Block","src":"40024:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40147:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81497,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"40137:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40137:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81481,"id":81500,"nodeType":"Return","src":"40130:20:165"}]}},{"assignments":[81507],"declarations":[{"constant":false,"id":81507,"mutability":"mutable","name":"_commitment","nameLocation":"40201:11:165","nodeType":"VariableDeclaration","scope":81533,"src":"40171:41:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82940_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":81506,"nodeType":"UserDefinedTypeName","pathNode":{"id":81505,"name":"Gear.ChainCommitment","nameLocations":["40171:4:165","40176:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"40171:20:165"},"referencedDeclaration":82940,"src":"40171:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82940_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":81512,"initialValue":{"baseExpression":{"expression":{"id":81508,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"40215:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40222:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":82970,"src":"40215:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82940_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81511,"indexExpression":{"hexValue":"30","id":81510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40238: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":"40215:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82940_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"40171:69:165"},{"assignments":[81514],"declarations":[{"constant":false,"id":81514,"mutability":"mutable","name":"_transitionsHash","nameLocation":"40259:16:165","nodeType":"VariableDeclaration","scope":81533,"src":"40251:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40251:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81520,"initialValue":{"arguments":[{"id":81516,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81474,"src":"40297:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81517,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81507,"src":"40305:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82940_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40317:11:165","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":82936,"src":"40305:23:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83133_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_$83133_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":81515,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82099,"src":"40278:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_array$_t_struct$_StateTransition_$83133_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":81519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40278:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"40251:78:165"},{"eventCall":{"arguments":[{"expression":{"id":81522,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81507,"src":"40364:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82940_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40376:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":82939,"src":"40364:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81521,"name":"AnnouncesCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74500,"src":"40345:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40345:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81525,"nodeType":"EmitStatement","src":"40340:41:165"},{"expression":{"arguments":[{"id":81528,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81514,"src":"40424:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81529,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81507,"src":"40442:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82940_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40454:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":82939,"src":"40442:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81526,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"40399:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40404:19:165","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83216,"src":"40399:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":81531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40399:60:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81481,"id":81532,"nodeType":"Return","src":"40392:67:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"39792:12:165","parameters":{"id":81478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81474,"mutability":"mutable","name":"router","nameLocation":"39821:6:165","nodeType":"VariableDeclaration","scope":81534,"src":"39805:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81473,"nodeType":"UserDefinedTypeName","pathNode":{"id":81472,"name":"Storage","nameLocations":["39805:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"39805:7:165"},"referencedDeclaration":74490,"src":"39805:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81477,"mutability":"mutable","name":"_batch","nameLocation":"39859:6:165","nodeType":"VariableDeclaration","scope":81534,"src":"39829:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81476,"nodeType":"UserDefinedTypeName","pathNode":{"id":81475,"name":"Gear.BatchCommitment","nameLocations":["39829:4:165","39834:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"39829:20:165"},"referencedDeclaration":82986,"src":"39829:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"39804:62:165"},"returnParameters":{"id":81481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81534,"src":"39884:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39884:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39883:9:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81676,"nodeType":"FunctionDefinition","src":"40472:1402:165","nodes":[],"body":{"id":81675,"nodeType":"Block","src":"40582:1292:165","nodes":[],"statements":[{"assignments":[81546],"declarations":[{"constant":false,"id":81546,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"40600:18:165","nodeType":"VariableDeclaration","scope":81675,"src":"40592:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81545,"name":"uint256","nodeType":"ElementaryTypeName","src":"40592:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81550,"initialValue":{"expression":{"expression":{"id":81547,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81540,"src":"40621:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40628:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":82975,"src":"40621:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82930_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40644:6:165","memberName":"length","nodeType":"MemberAccess","src":"40621:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40592:58:165"},{"assignments":[81552],"declarations":[{"constant":false,"id":81552,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"40668:23:165","nodeType":"VariableDeclaration","scope":81675,"src":"40660:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81551,"name":"uint256","nodeType":"ElementaryTypeName","src":"40660:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81556,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81553,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81546,"src":"40694:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40715:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"40694:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40660:57:165"},{"assignments":[81558],"declarations":[{"constant":false,"id":81558,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"40735:18:165","nodeType":"VariableDeclaration","scope":81675,"src":"40727:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81557,"name":"uint256","nodeType":"ElementaryTypeName","src":"40727:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81563,"initialValue":{"arguments":[{"id":81561,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81552,"src":"40772:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81559,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"40756:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40763:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"40756:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40756:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40727:69:165"},{"assignments":[81565],"declarations":[{"constant":false,"id":81565,"mutability":"mutable","name":"offset","nameLocation":"40814:6:165","nodeType":"VariableDeclaration","scope":81675,"src":"40806:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81564,"name":"uint256","nodeType":"ElementaryTypeName","src":"40806:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81567,"initialValue":{"hexValue":"30","id":81566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40823:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40806:18:165"},{"body":{"id":81666,"nodeType":"Block","src":"40884:884:165","statements":[{"assignments":[81582],"declarations":[{"constant":false,"id":81582,"mutability":"mutable","name":"_commitment","nameLocation":"40927:11:165","nodeType":"VariableDeclaration","scope":81666,"src":"40898:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":81581,"nodeType":"UserDefinedTypeName","pathNode":{"id":81580,"name":"Gear.CodeCommitment","nameLocations":["40898:4:165","40903:14:165"],"nodeType":"IdentifierPath","referencedDeclaration":82930,"src":"40898:19:165"},"referencedDeclaration":82930,"src":"40898:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":81587,"initialValue":{"baseExpression":{"expression":{"id":81583,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81540,"src":"40941:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40948:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":82975,"src":"40941:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82930_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81586,"indexExpression":{"id":81585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81569,"src":"40964:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40941:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"40898:68:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"},"id":81598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81589,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81537,"src":"41006:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41013:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41006:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41026:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"41006:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81594,"indexExpression":{"expression":{"id":81592,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81582,"src":"41032:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41044:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82926,"src":"41032:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41006:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81595,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"41051:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41056:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"41051:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83026_$","typeString":"type(enum Gear.CodeState)"}},"id":81597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41066:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83023,"src":"41051:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"src":"41006:79:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81599,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74612,"src":"41103:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41103:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40981:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40981:164:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81602,"nodeType":"ExpressionStatement","src":"40981:164:165"},{"condition":{"expression":{"id":81603,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81582,"src":"41164:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41176:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82929,"src":"41164:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81634,"nodeType":"Block","src":"41349:81:165","statements":[{"expression":{"id":81632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"41367:48:165","subExpression":{"baseExpression":{"expression":{"expression":{"id":81626,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81537,"src":"41374:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41381:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41374:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41394:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"41374:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81631,"indexExpression":{"expression":{"id":81629,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81582,"src":"41400:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41412:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82926,"src":"41400:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41374:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81633,"nodeType":"ExpressionStatement","src":"41367:48:165"}]},"id":81635,"nodeType":"IfStatement","src":"41160:270:165","trueBody":{"id":81625,"nodeType":"Block","src":"41183:160:165","statements":[{"expression":{"id":81616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81605,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81537,"src":"41201:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41208:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41201:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41221:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"41201:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83026_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81612,"indexExpression":{"expression":{"id":81608,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81582,"src":"41227:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41239:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82926,"src":"41227:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41201:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":81613,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"41245:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41250:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"41245:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83026_$","typeString":"type(enum Gear.CodeState)"}},"id":81615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41260:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83025,"src":"41245:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"src":"41201:68:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83026","typeString":"enum Gear.CodeState"}},"id":81617,"nodeType":"ExpressionStatement","src":"41201:68:165"},{"expression":{"id":81623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41287:41:165","subExpression":{"expression":{"expression":{"id":81618,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81537,"src":"41287:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41294:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41287:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41307:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83085,"src":"41287:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81624,"nodeType":"ExpressionStatement","src":"41287:41:165"}]}},{"eventCall":{"arguments":[{"expression":{"id":81637,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81582,"src":"41466:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41478:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82926,"src":"41466:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81639,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81582,"src":"41482:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41494:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82929,"src":"41482:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81636,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74507,"src":"41449:16:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":81641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41449:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81642,"nodeType":"EmitStatement","src":"41444:56:165"},{"assignments":[81644],"declarations":[{"constant":false,"id":81644,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"41523:18:165","nodeType":"VariableDeclaration","scope":81666,"src":"41515:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41515:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81652,"initialValue":{"arguments":[{"expression":{"id":81647,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81582,"src":"41568:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41580:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82926,"src":"41568:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81649,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81582,"src":"41584:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82930_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41596:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82929,"src":"41584:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":81645,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"41544:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41549:18:165","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83233,"src":"41544:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":81651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41544:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41515:87:165"},{"expression":{"arguments":[{"id":81656,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81558,"src":"41642:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81657,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81565,"src":"41662:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81658,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81644,"src":"41670: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":81653,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"41616:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41623:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"41616:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41616:73:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81660,"nodeType":"ExpressionStatement","src":"41616:73:165"},{"id":81665,"nodeType":"UncheckedBlock","src":"41703:55:165","statements":[{"expression":{"id":81663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81661,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81565,"src":"41731:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41741:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"41731:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81664,"nodeType":"ExpressionStatement","src":"41731:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81569,"src":"40855:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81573,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81546,"src":"40859:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40855:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81667,"initializationExpression":{"assignments":[81569],"declarations":[{"constant":false,"id":81569,"mutability":"mutable","name":"i","nameLocation":"40848:1:165","nodeType":"VariableDeclaration","scope":81667,"src":"40840:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81568,"name":"uint256","nodeType":"ElementaryTypeName","src":"40840:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81571,"initialValue":{"hexValue":"30","id":81570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40852:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40840:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"40879:3:165","subExpression":{"id":81575,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81569,"src":"40879:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81577,"nodeType":"ExpressionStatement","src":"40879:3:165"},"nodeType":"ForStatement","src":"40835:933:165"},{"expression":{"arguments":[{"id":81670,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81558,"src":"41820:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41840:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81672,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81552,"src":"41843: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":81668,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"41785:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41792:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"41785: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":81673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41785:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81544,"id":81674,"nodeType":"Return","src":"41778:89:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"40481:12:165","parameters":{"id":81541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81537,"mutability":"mutable","name":"router","nameLocation":"40510:6:165","nodeType":"VariableDeclaration","scope":81676,"src":"40494:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81536,"nodeType":"UserDefinedTypeName","pathNode":{"id":81535,"name":"Storage","nameLocations":["40494:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"40494:7:165"},"referencedDeclaration":74490,"src":"40494:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81540,"mutability":"mutable","name":"_batch","nameLocation":"40548:6:165","nodeType":"VariableDeclaration","scope":81676,"src":"40518:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81539,"nodeType":"UserDefinedTypeName","pathNode":{"id":81538,"name":"Gear.BatchCommitment","nameLocations":["40518:4:165","40523:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"40518:20:165"},"referencedDeclaration":82986,"src":"40518:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"40493:62:165"},"returnParameters":{"id":81544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81676,"src":"40573:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40573:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40572:9:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81833,"nodeType":"FunctionDefinition","src":"41916:1705:165","nodes":[],"body":{"id":81832,"nodeType":"Block","src":"42028:1593:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81688,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81682,"src":"42046:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42053:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":82980,"src":"42046:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$82996_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42071:6:165","memberName":"length","nodeType":"MemberAccess","src":"42046:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42081:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"42046:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81693,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74614,"src":"42084:25:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42084:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81687,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42038:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42038:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81696,"nodeType":"ExpressionStatement","src":"42038:74:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81697,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81682,"src":"42127:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42134:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":82980,"src":"42127:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$82996_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42152:6:165","memberName":"length","nodeType":"MemberAccess","src":"42127:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42162:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42127:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81707,"nodeType":"IfStatement","src":"42123:179:165","trueBody":{"id":81706,"nodeType":"Block","src":"42165:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42288:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81702,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"42278:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42278:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81686,"id":81705,"nodeType":"Return","src":"42271:20:165"}]}},{"assignments":[81712],"declarations":[{"constant":false,"id":81712,"mutability":"mutable","name":"_commitment","nameLocation":"42344:11:165","nodeType":"VariableDeclaration","scope":81832,"src":"42312:43:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":81711,"nodeType":"UserDefinedTypeName","pathNode":{"id":81710,"name":"Gear.RewardsCommitment","nameLocations":["42312:4:165","42317:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":82996,"src":"42312:22:165"},"referencedDeclaration":82996,"src":"42312:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":81717,"initialValue":{"baseExpression":{"expression":{"id":81713,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81682,"src":"42358:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42365:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":82980,"src":"42358:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$82996_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81716,"indexExpression":{"hexValue":"30","id":81715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42383: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":"42358:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"42312:73:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81719,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"42404:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42416:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":82995,"src":"42404:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81721,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81682,"src":"42428:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42435:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82959,"src":"42428:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42404:45:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81724,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74616,"src":"42451:35:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42451:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81718,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42396:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42396:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81727,"nodeType":"ExpressionStatement","src":"42396:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81729,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"42507:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42519:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":82995,"src":"42507:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":81731,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81679,"src":"42532:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42539:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"42532:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42552:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"42532:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42507:54:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81735,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74618,"src":"42563:32:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42563:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81728,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42499:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42499:99:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81738,"nodeType":"ExpressionStatement","src":"42499:99:165"},{"assignments":[81740],"declarations":[{"constant":false,"id":81740,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"42617:18:165","nodeType":"VariableDeclaration","scope":81832,"src":"42609:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81739,"name":"uint256","nodeType":"ElementaryTypeName","src":"42609:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81747,"initialValue":{"arguments":[{"id":81743,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81679,"src":"42654:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81744,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"42662:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42674:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":82995,"src":"42662: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":81741,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"42638:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42643:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":83968,"src":"42638: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":81746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42638:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42609:75:165"},{"assignments":[81749],"declarations":[{"constant":false,"id":81749,"mutability":"mutable","name":"batchEraIndex","nameLocation":"42702:13:165","nodeType":"VariableDeclaration","scope":81832,"src":"42694:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81748,"name":"uint256","nodeType":"ElementaryTypeName","src":"42694:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81756,"initialValue":{"arguments":[{"id":81752,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81679,"src":"42734:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81753,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81682,"src":"42742:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42749:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82959,"src":"42742: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":81750,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"42718:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42723:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":83968,"src":"42718: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":81755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42718:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42694:70:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81758,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81740,"src":"42783:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81759,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81749,"src":"42804:13:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"42783:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81761,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74620,"src":"42819:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42819:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81757,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42775:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42775:78:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81764,"nodeType":"ExpressionStatement","src":"42775:78:165"},{"assignments":[81766],"declarations":[{"constant":false,"id":81766,"mutability":"mutable","name":"_middleware","nameLocation":"42872:11:165","nodeType":"VariableDeclaration","scope":81832,"src":"42864:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81765,"name":"address","nodeType":"ElementaryTypeName","src":"42864:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81770,"initialValue":{"expression":{"expression":{"id":81767,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81679,"src":"42886:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42893:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"42886:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42907:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":82921,"src":"42886:31:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"42864:53:165"},{"assignments":[81772],"declarations":[{"constant":false,"id":81772,"mutability":"mutable","name":"success","nameLocation":"42932:7:165","nodeType":"VariableDeclaration","scope":81832,"src":"42927:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81771,"name":"bool","nodeType":"ElementaryTypeName","src":"42927:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81788,"initialValue":{"arguments":[{"id":81779,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81766,"src":"43010:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81780,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"43023:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43035:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":82990,"src":"43023:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83002_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43045:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"43023:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":81783,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"43054:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43066:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"43054:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":81785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43074:11:165","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83009,"src":"43054:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43023: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":81774,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81679,"src":"42955:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42962:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"42955:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42976:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82918,"src":"42955:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81773,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75001,"src":"42942:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75001_$","typeString":"type(contract IWrappedVara)"}},"id":81777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42942:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75001","typeString":"contract IWrappedVara"}},"id":81778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43002:7:165","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"42942:67:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":81787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42942:144:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"42927:159:165"},{"expression":{"arguments":[{"id":81790,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81772,"src":"43104:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81791,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"43113:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43113:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43096:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43096:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81794,"nodeType":"ExpressionStatement","src":"43096:38:165"},{"assignments":[81796],"declarations":[{"constant":false,"id":81796,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"43153:20:165","nodeType":"VariableDeclaration","scope":81832,"src":"43145:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43145:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81811,"initialValue":{"arguments":[{"expression":{"expression":{"id":81801,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81679,"src":"43257:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43264:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43257:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82922_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43278:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82918,"src":"43257:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":81804,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"43291:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43303:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":82990,"src":"43291:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83002_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43313:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"43291:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":81807,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"43321:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43333:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":82990,"src":"43321:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83002_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43343:4:165","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":83001,"src":"43321: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":81798,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81766,"src":"43188:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81797,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43176:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43176:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43214:25:165","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":74119,"src":"43176: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":81810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43176:185:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43145:216:165"},{"assignments":[81813],"declarations":[{"constant":false,"id":81813,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"43380:18:165","nodeType":"VariableDeclaration","scope":81832,"src":"43372:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43372:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81823,"initialValue":{"arguments":[{"expression":{"id":81818,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"43462:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43474:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"43462:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":81820,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"43483:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43495:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":82995,"src":"43483:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83012_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":81815,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81766,"src":"43425:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81814,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43413:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43413:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43438:23:165","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":74130,"src":"43413:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$83012_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":81822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43413:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43372:133:165"},{"expression":{"arguments":[{"id":81826,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81796,"src":"43550:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81827,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"43572:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81828,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81712,"src":"43592:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$82996_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43604:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":82995,"src":"43592: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":81824,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"43523:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43528:21:165","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83255,"src":"43523: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":81830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43523:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81686,"id":81831,"nodeType":"Return","src":"43516:98:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"41925:14:165","parameters":{"id":81683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81679,"mutability":"mutable","name":"router","nameLocation":"41956:6:165","nodeType":"VariableDeclaration","scope":81833,"src":"41940:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81678,"nodeType":"UserDefinedTypeName","pathNode":{"id":81677,"name":"Storage","nameLocations":["41940:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"41940:7:165"},"referencedDeclaration":74490,"src":"41940:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81682,"mutability":"mutable","name":"_batch","nameLocation":"41994:6:165","nodeType":"VariableDeclaration","scope":81833,"src":"41964:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81681,"nodeType":"UserDefinedTypeName","pathNode":{"id":81680,"name":"Gear.BatchCommitment","nameLocations":["41964:4:165","41969:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"41964:20:165"},"referencedDeclaration":82986,"src":"41964:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"41939:62:165"},"returnParameters":{"id":81686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81685,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81833,"src":"42019:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42019:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"42018:9:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81979,"nodeType":"FunctionDefinition","src":"43688:1657:165","nodes":[],"body":{"id":81978,"nodeType":"Block","src":"43803:1542:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81846,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81840,"src":"43821:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43828:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"43821:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82952_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43849:6:165","memberName":"length","nodeType":"MemberAccess","src":"43821:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43859:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43821:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81851,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74624,"src":"43862:28:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43862:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81845,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43813:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43813:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81854,"nodeType":"ExpressionStatement","src":"43813:80:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81855,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81840,"src":"43908:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43915:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"43908:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82952_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43936:6:165","memberName":"length","nodeType":"MemberAccess","src":"43908:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43946:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43908:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81865,"nodeType":"IfStatement","src":"43904:182:165","trueBody":{"id":81864,"nodeType":"Block","src":"43949:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44072:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81860,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44062:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44062:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81844,"id":81863,"nodeType":"Return","src":"44055:20:165"}]}},{"assignments":[81870],"declarations":[{"constant":false,"id":81870,"mutability":"mutable","name":"_commitment","nameLocation":"44131:11:165","nodeType":"VariableDeclaration","scope":81978,"src":"44096:46:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":81869,"nodeType":"UserDefinedTypeName","pathNode":{"id":81868,"name":"Gear.ValidatorsCommitment","nameLocations":["44096:4:165","44101:20:165"],"nodeType":"IdentifierPath","referencedDeclaration":82952,"src":"44096:25:165"},"referencedDeclaration":82952,"src":"44096:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":81875,"initialValue":{"baseExpression":{"expression":{"id":81871,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81840,"src":"44145:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44152:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"44145:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82952_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81874,"indexExpression":{"hexValue":"30","id":81873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44173: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":"44145:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"44096:79:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81877,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81870,"src":"44194:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44206:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82949,"src":"44194:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":81879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44217:6:165","memberName":"length","nodeType":"MemberAccess","src":"44194:29: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":"44226:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44194:33:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81882,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74626,"src":"44229:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44229:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81876,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44186:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44186:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81885,"nodeType":"ExpressionStatement","src":"44186:65:165"},{"assignments":[81887],"declarations":[{"constant":false,"id":81887,"mutability":"mutable","name":"currentEraIndex","nameLocation":"44324:15:165","nodeType":"VariableDeclaration","scope":81978,"src":"44316:23:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81886,"name":"uint256","nodeType":"ElementaryTypeName","src":"44316:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81899,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81888,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44343:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44349:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44343:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81890,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81837,"src":"44361:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44368:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"44361:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44381:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"44361:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"44343:47:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81894,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44342:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":81895,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81837,"src":"44394:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44401:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44394:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44411:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"44394:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44342:72:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44316:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81901,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81870,"src":"44433:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44445:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82951,"src":"44433:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81903,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81887,"src":"44457:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":81904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44475:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44457:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44433:43:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81907,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74628,"src":"44478:20:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44478:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81900,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44425:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44425:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81910,"nodeType":"ExpressionStatement","src":"44425:76:165"},{"assignments":[81912],"declarations":[{"constant":false,"id":81912,"mutability":"mutable","name":"nextEraStart","nameLocation":"44520:12:165","nodeType":"VariableDeclaration","scope":81978,"src":"44512:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81911,"name":"uint256","nodeType":"ElementaryTypeName","src":"44512:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81923,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81913,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81837,"src":"44535:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44542:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"44535:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44555:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"44535:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81916,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81837,"src":"44567:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44574:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44567:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44584:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"44567:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":81919,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81870,"src":"44590:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44602:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82951,"src":"44590:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44567:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44535:75:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44512:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81925,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44628:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44634:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44628:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81927,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81912,"src":"44647:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81928,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81837,"src":"44662:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44669:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44662:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83141_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44679:8:165","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":83138,"src":"44662:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44647:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44628:59:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81933,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74630,"src":"44689:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44689:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81924,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44620:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44620:90:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81936,"nodeType":"ExpressionStatement","src":"44620:90:165"},{"assignments":[81941],"declarations":[{"constant":false,"id":81941,"mutability":"mutable","name":"_validators","nameLocation":"44792:11:165","nodeType":"VariableDeclaration","scope":81978,"src":"44768:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":81940,"nodeType":"UserDefinedTypeName","pathNode":{"id":81939,"name":"Gear.Validators","nameLocations":["44768:4:165","44773:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"44768:15:165"},"referencedDeclaration":82899,"src":"44768:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":81946,"initialValue":{"arguments":[{"id":81944,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81837,"src":"44833: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":81942,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"44806:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44811:21:165","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":83804,"src":"44806:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82899_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":81945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44806:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"44768:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81948,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81941,"src":"44858:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":81949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44870:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82898,"src":"44858:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81950,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44889:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44895:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44889:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44858:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81953,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74632,"src":"44906:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44906:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81947,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44850:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44850:85:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81956,"nodeType":"ExpressionStatement","src":"44850:85:165"},{"expression":{"arguments":[{"id":81958,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81941,"src":"45028:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":81959,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81870,"src":"45053:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45065:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82944,"src":"45053:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":81961,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81870,"src":"45098:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45110:33:165","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":82946,"src":"45098:45:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":81963,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81870,"src":"45157:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45169:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82949,"src":"45157:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":81965,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81912,"src":"45193:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_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":81957,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82211,"src":"44998:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$82899_storage_ptr_$_t_struct$_AggregatedPublicKey_$82878_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":81966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44998:217:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81967,"nodeType":"ExpressionStatement","src":"44998:217:165"},{"eventCall":{"arguments":[{"expression":{"id":81969,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81870,"src":"45257:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45269:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82951,"src":"45257:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81968,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"45231:25:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45231:47:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81972,"nodeType":"EmitStatement","src":"45226:52:165"},{"expression":{"arguments":[{"id":81975,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81870,"src":"45326:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82952_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":81973,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84058,"src":"45296:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84058_$","typeString":"type(library Gear)"}},"id":81974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45301:24:165","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83281,"src":"45296:29:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$82952_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":81976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45296:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81844,"id":81977,"nodeType":"Return","src":"45289:49:165"}]},"documentation":{"id":81834,"nodeType":"StructuredDocumentation","src":"43627:56:165","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"43697:17:165","parameters":{"id":81841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81837,"mutability":"mutable","name":"router","nameLocation":"43731:6:165","nodeType":"VariableDeclaration","scope":81979,"src":"43715:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81836,"nodeType":"UserDefinedTypeName","pathNode":{"id":81835,"name":"Storage","nameLocations":["43715:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"43715:7:165"},"referencedDeclaration":74490,"src":"43715:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81840,"mutability":"mutable","name":"_batch","nameLocation":"43769:6:165","nodeType":"VariableDeclaration","scope":81979,"src":"43739:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81839,"nodeType":"UserDefinedTypeName","pathNode":{"id":81838,"name":"Gear.BatchCommitment","nameLocations":["43739:4:165","43744:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"43739:20:165"},"referencedDeclaration":82986,"src":"43739:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$82986_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43714:62:165"},"returnParameters":{"id":81844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81843,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81979,"src":"43794:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81842,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43794:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43793:9:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82099,"nodeType":"FunctionDefinition","src":"45351:1168:165","nodes":[],"body":{"id":82098,"nodeType":"Block","src":"45495:1024:165","nodes":[],"statements":[{"assignments":[81992],"declarations":[{"constant":false,"id":81992,"mutability":"mutable","name":"transitionsLen","nameLocation":"45513:14:165","nodeType":"VariableDeclaration","scope":82098,"src":"45505:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81991,"name":"uint256","nodeType":"ElementaryTypeName","src":"45505:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81995,"initialValue":{"expression":{"id":81993,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81986,"src":"45530:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83133_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":81994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45543:6:165","memberName":"length","nodeType":"MemberAccess","src":"45530:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45505:44:165"},{"assignments":[81997],"declarations":[{"constant":false,"id":81997,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"45567:19:165","nodeType":"VariableDeclaration","scope":82098,"src":"45559:27:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81996,"name":"uint256","nodeType":"ElementaryTypeName","src":"45559:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82001,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81998,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81992,"src":"45589:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45606:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"45589:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45559:49:165"},{"assignments":[82003],"declarations":[{"constant":false,"id":82003,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"45626:23:165","nodeType":"VariableDeclaration","scope":82098,"src":"45618:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82002,"name":"uint256","nodeType":"ElementaryTypeName","src":"45618:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82008,"initialValue":{"arguments":[{"id":82006,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81997,"src":"45668:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82004,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"45652:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45659:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"45652:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":82007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45652:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45618:70:165"},{"assignments":[82010],"declarations":[{"constant":false,"id":82010,"mutability":"mutable","name":"offset","nameLocation":"45706:6:165","nodeType":"VariableDeclaration","scope":82098,"src":"45698:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82009,"name":"uint256","nodeType":"ElementaryTypeName","src":"45698:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82012,"initialValue":{"hexValue":"30","id":82011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45715:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45698:18:165"},{"body":{"id":82089,"nodeType":"Block","src":"45772:640:165","statements":[{"assignments":[82027],"declarations":[{"constant":false,"id":82027,"mutability":"mutable","name":"transition","nameLocation":"45816:10:165","nodeType":"VariableDeclaration","scope":82089,"src":"45786:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":82026,"nodeType":"UserDefinedTypeName","pathNode":{"id":82025,"name":"Gear.StateTransition","nameLocations":["45786:4:165","45791:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83133,"src":"45786:20:165"},"referencedDeclaration":83133,"src":"45786:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":82031,"initialValue":{"baseExpression":{"id":82028,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81986,"src":"45829:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83133_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82030,"indexExpression":{"id":82029,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82014,"src":"45842:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45829:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"45786:58:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82033,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81982,"src":"45867:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45874:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"45867:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45887:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"45867:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82038,"indexExpression":{"expression":{"id":82036,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"45896:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45907:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83107,"src":"45896:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45867:48:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45919:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45867:53:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82041,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74610,"src":"45922:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45922:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82032,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45859:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45859:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82044,"nodeType":"ExpressionStatement","src":"45859:80:165"},{"assignments":[82046],"declarations":[{"constant":false,"id":82046,"mutability":"mutable","name":"value","nameLocation":"45962:5:165","nodeType":"VariableDeclaration","scope":82089,"src":"45954:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82045,"name":"uint128","nodeType":"ElementaryTypeName","src":"45954:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82048,"initialValue":{"hexValue":"30","id":82047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45970:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45954:17:165"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":82056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82049,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"45990:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46001:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"45990:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46019:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45990:30:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":82055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"46024:38:165","subExpression":{"expression":{"id":82053,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46025:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46036:26:165","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"46025:37:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"45990:72:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82063,"nodeType":"IfStatement","src":"45986:144:165","trueBody":{"id":82062,"nodeType":"Block","src":"46064:66:165","statements":[{"expression":{"id":82060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82057,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"46082:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82058,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46090:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46101:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"46090:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"46082:33:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82061,"nodeType":"ExpressionStatement","src":"46082:33:165"}]}},{"assignments":[82065],"declarations":[{"constant":false,"id":82065,"mutability":"mutable","name":"transitionHash","nameLocation":"46152:14:165","nodeType":"VariableDeclaration","scope":82089,"src":"46144:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46144:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82075,"initialValue":{"arguments":[{"id":82073,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46234:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":82067,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46177:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46188:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83107,"src":"46177:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82066,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"46169:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":82069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46169:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":82070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46197:22:165","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":74394,"src":"46169:50:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83133_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":82071,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"46227:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"46169:64:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83133_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46169:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46144:101:165"},{"expression":{"arguments":[{"id":82079,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82003,"src":"46285:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82080,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82010,"src":"46310:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82081,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82065,"src":"46318: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":82076,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"46259:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46266:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"46259:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":82082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46259:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82083,"nodeType":"ExpressionStatement","src":"46259:74:165"},{"id":82088,"nodeType":"UncheckedBlock","src":"46347:55:165","statements":[{"expression":{"id":82086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82084,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82010,"src":"46375:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":82085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46385:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"46375:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82087,"nodeType":"ExpressionStatement","src":"46375:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82014,"src":"45747:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":82018,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81992,"src":"45751:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45747:18:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82090,"initializationExpression":{"assignments":[82014],"declarations":[{"constant":false,"id":82014,"mutability":"mutable","name":"i","nameLocation":"45740:1:165","nodeType":"VariableDeclaration","scope":82090,"src":"45732:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82013,"name":"uint256","nodeType":"ElementaryTypeName","src":"45732:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82016,"initialValue":{"hexValue":"30","id":82015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45744:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45732:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"45767:3:165","subExpression":{"id":82020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82014,"src":"45767:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82022,"nodeType":"ExpressionStatement","src":"45767:3:165"},"nodeType":"ForStatement","src":"45727:685:165"},{"expression":{"arguments":[{"id":82093,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82003,"src":"46464:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":82094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46489:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":82095,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81997,"src":"46492: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":82091,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"46429:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":82092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46436:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"46429: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":82096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46429:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81990,"id":82097,"nodeType":"Return","src":"46422:90:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"45360:18:165","parameters":{"id":81987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81982,"mutability":"mutable","name":"router","nameLocation":"45395:6:165","nodeType":"VariableDeclaration","scope":82099,"src":"45379:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81981,"nodeType":"UserDefinedTypeName","pathNode":{"id":81980,"name":"Storage","nameLocations":["45379:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"45379:7:165"},"referencedDeclaration":74490,"src":"45379:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81986,"mutability":"mutable","name":"_transitions","nameLocation":"45435:12:165","nodeType":"VariableDeclaration","scope":82099,"src":"45403:44:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83133_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":81984,"nodeType":"UserDefinedTypeName","pathNode":{"id":81983,"name":"Gear.StateTransition","nameLocations":["45403:4:165","45408:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83133,"src":"45403:20:165"},"referencedDeclaration":83133,"src":"45403:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83133_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":81985,"nodeType":"ArrayTypeName","src":"45403:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83133_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"45378:70:165"},"returnParameters":{"id":81990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82099,"src":"45482:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45482:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"45481:9:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82211,"nodeType":"FunctionDefinition","src":"46525:1421:165","nodes":[],"body":{"id":82210,"nodeType":"Block","src":"46808:1138:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":82118,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82105,"src":"47198:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47222:1:165","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82875,"src":"47198:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":82120,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82105,"src":"47225:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47249:1:165","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82877,"src":"47225:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82116,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"47175:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":82117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47181:16:165","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":40634,"src":"47175:22:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":82122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47175:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82123,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74547,"src":"47265:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47265:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82115,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47154:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47154:154:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82126,"nodeType":"ExpressionStatement","src":"47154:154:165"},{"expression":{"id":82131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82127,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82102,"src":"47318:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47330:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82883,"src":"47318:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82130,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82105,"src":"47352:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"47318:57:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":82132,"nodeType":"ExpressionStatement","src":"47318:57:165"},{"expression":{"id":82140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82133,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82102,"src":"47385:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47397:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82886,"src":"47385:52:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82138,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82107,"src":"47454:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":82136,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84514,"src":"47440:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84514_$","typeString":"type(library SSTORE2)"}},"id":82137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47448:5:165","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":84370,"src":"47440:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":82139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47440:49:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47385:104:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82141,"nodeType":"ExpressionStatement","src":"47385:104:165"},{"body":{"id":82169,"nodeType":"Block","src":"47553:114:165","statements":[{"assignments":[82155],"declarations":[{"constant":false,"id":82155,"mutability":"mutable","name":"_validator","nameLocation":"47575:10:165","nodeType":"VariableDeclaration","scope":82169,"src":"47567:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82154,"name":"address","nodeType":"ElementaryTypeName","src":"47567:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82160,"initialValue":{"baseExpression":{"expression":{"id":82156,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82102,"src":"47588:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47600:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82895,"src":"47588:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82159,"indexExpression":{"id":82158,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"47605:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47588:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47567:40:165"},{"expression":{"id":82167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82161,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82102,"src":"47621:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47633:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82891,"src":"47621:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82165,"indexExpression":{"id":82163,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82155,"src":"47637:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"47621:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":82166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"47651:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"47621:35:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82168,"nodeType":"ExpressionStatement","src":"47621:35:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82146,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"47519:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":82147,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82102,"src":"47523:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47535:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82895,"src":"47523:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47540:6:165","memberName":"length","nodeType":"MemberAccess","src":"47523:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47519:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82170,"initializationExpression":{"assignments":[82143],"declarations":[{"constant":false,"id":82143,"mutability":"mutable","name":"i","nameLocation":"47512:1:165","nodeType":"VariableDeclaration","scope":82170,"src":"47504:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82142,"name":"uint256","nodeType":"ElementaryTypeName","src":"47504:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82145,"initialValue":{"hexValue":"30","id":82144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47516:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47504:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"47548:3:165","subExpression":{"id":82151,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"47548:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82153,"nodeType":"ExpressionStatement","src":"47548:3:165"},"nodeType":"ForStatement","src":"47499:168:165"},{"body":{"id":82196,"nodeType":"Block","src":"47728:111:165","statements":[{"assignments":[82183],"declarations":[{"constant":false,"id":82183,"mutability":"mutable","name":"_validator","nameLocation":"47750:10:165","nodeType":"VariableDeclaration","scope":82196,"src":"47742:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82182,"name":"address","nodeType":"ElementaryTypeName","src":"47742:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82187,"initialValue":{"baseExpression":{"id":82184,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82110,"src":"47763:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82186,"indexExpression":{"id":82185,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47778:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47763:17:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47742:38:165"},{"expression":{"id":82194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82188,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82102,"src":"47794:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47806:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82891,"src":"47794:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82192,"indexExpression":{"id":82190,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82183,"src":"47810:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"47794:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":82193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"47824:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"47794:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82195,"nodeType":"ExpressionStatement","src":"47794:34:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82175,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47696:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82176,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82110,"src":"47700:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47715:6:165","memberName":"length","nodeType":"MemberAccess","src":"47700:21:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47696:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82197,"initializationExpression":{"assignments":[82172],"declarations":[{"constant":false,"id":82172,"mutability":"mutable","name":"i","nameLocation":"47689:1:165","nodeType":"VariableDeclaration","scope":82197,"src":"47681:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82171,"name":"uint256","nodeType":"ElementaryTypeName","src":"47681: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":"47693:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47681:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"47723:3:165","subExpression":{"id":82179,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47723:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82181,"nodeType":"ExpressionStatement","src":"47723:3:165"},"nodeType":"ForStatement","src":"47676:163:165"},{"expression":{"id":82202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82198,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82102,"src":"47848:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47860:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82895,"src":"47848:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82201,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82110,"src":"47867:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"47848:33:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82203,"nodeType":"ExpressionStatement","src":"47848:33:165"},{"expression":{"id":82208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82204,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82102,"src":"47891:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47903:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82898,"src":"47891:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82207,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82112,"src":"47922:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47891:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82209,"nodeType":"ExpressionStatement","src":"47891:48:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"46534:16:165","parameters":{"id":82113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82102,"mutability":"mutable","name":"_validators","nameLocation":"46584:11:165","nodeType":"VariableDeclaration","scope":82211,"src":"46560:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82101,"nodeType":"UserDefinedTypeName","pathNode":{"id":82100,"name":"Gear.Validators","nameLocations":["46560:4:165","46565:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82899,"src":"46560:15:165"},"referencedDeclaration":82899,"src":"46560:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82899_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":82105,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"46637:23:165","nodeType":"VariableDeclaration","scope":82211,"src":"46605:55:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82104,"nodeType":"UserDefinedTypeName","pathNode":{"id":82103,"name":"Gear.AggregatedPublicKey","nameLocations":["46605:4:165","46610:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82878,"src":"46605:24:165"},"referencedDeclaration":82878,"src":"46605:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82878_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82107,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"46683:34:165","nodeType":"VariableDeclaration","scope":82211,"src":"46670:47:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82106,"name":"bytes","nodeType":"ElementaryTypeName","src":"46670:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82110,"mutability":"mutable","name":"_newValidators","nameLocation":"46744:14:165","nodeType":"VariableDeclaration","scope":82211,"src":"46727:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82108,"name":"address","nodeType":"ElementaryTypeName","src":"46727:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82109,"nodeType":"ArrayTypeName","src":"46727:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82112,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"46776:17:165","nodeType":"VariableDeclaration","scope":82211,"src":"46768:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82111,"name":"uint256","nodeType":"ElementaryTypeName","src":"46768:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46550:249:165"},"returnParameters":{"id":82114,"nodeType":"ParameterList","parameters":[],"src":"46808:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82224,"nodeType":"FunctionDefinition","src":"47952:192:165","nodes":[],"body":{"id":82223,"nodeType":"Block","src":"48017:127:165","nodes":[],"statements":[{"assignments":[82218],"declarations":[{"constant":false,"id":82218,"mutability":"mutable","name":"slot","nameLocation":"48035:4:165","nodeType":"VariableDeclaration","scope":82223,"src":"48027:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48027:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82221,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82219,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82236,"src":"48042:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48042:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48027:32:165"},{"AST":{"nativeSrc":"48095:43:165","nodeType":"YulBlock","src":"48095:43:165","statements":[{"nativeSrc":"48109:19:165","nodeType":"YulAssignment","src":"48109:19:165","value":{"name":"slot","nativeSrc":"48124:4:165","nodeType":"YulIdentifier","src":"48124:4:165"},"variableNames":[{"name":"router.slot","nativeSrc":"48109:11:165","nodeType":"YulIdentifier","src":"48109:11:165"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82215,"isOffset":false,"isSlot":true,"src":"48109:11:165","suffix":"slot","valueSize":1},{"declaration":82218,"isOffset":false,"isSlot":false,"src":"48124:4:165","valueSize":1}],"flags":["memory-safe"],"id":82222,"nodeType":"InlineAssembly","src":"48070:68:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"47961:7:165","parameters":{"id":82212,"nodeType":"ParameterList","parameters":[],"src":"47968:2:165"},"returnParameters":{"id":82216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82215,"mutability":"mutable","name":"router","nameLocation":"48009:6:165","nodeType":"VariableDeclaration","scope":82224,"src":"47993:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82214,"nodeType":"UserDefinedTypeName","pathNode":{"id":82213,"name":"Storage","nameLocations":["47993:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"47993:7:165"},"referencedDeclaration":74490,"src":"47993:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"47992:24:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82236,"nodeType":"FunctionDefinition","src":"48150:128:165","nodes":[],"body":{"id":82235,"nodeType":"Block","src":"48208:70:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82231,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79481,"src":"48252:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82229,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48225:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48237:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48225: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":82232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48225:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48266:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48225:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82228,"id":82234,"nodeType":"Return","src":"48218:53:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"48159:15:165","parameters":{"id":82225,"nodeType":"ParameterList","parameters":[],"src":"48174:2:165"},"returnParameters":{"id":82228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82236,"src":"48199:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48199:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48198:9:165"},"scope":82324,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82264,"nodeType":"FunctionDefinition","src":"48284:240:165","nodes":[],"body":{"id":82263,"nodeType":"Block","src":"48352:172:165","nodes":[],"statements":[{"assignments":[82244],"declarations":[{"constant":false,"id":82244,"mutability":"mutable","name":"slot","nameLocation":"48370:4:165","nodeType":"VariableDeclaration","scope":82263,"src":"48362:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48362:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82249,"initialValue":{"arguments":[{"id":82247,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82238,"src":"48404:9:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82245,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"48377:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":82246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48392:11:165","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"48377:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48377:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48362:52:165"},{"expression":{"id":82257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82253,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79481,"src":"48451:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82250,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48424:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48436:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48424: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":82254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48424:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48465:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48424:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82256,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82244,"src":"48473:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"48424:53:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82258,"nodeType":"ExpressionStatement","src":"48424:53:165"},{"eventCall":{"arguments":[{"id":82260,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82244,"src":"48512:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":82259,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"48493:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":82261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48493:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82262,"nodeType":"EmitStatement","src":"48488:29:165"}]},"implemented":true,"kind":"function","modifiers":[{"id":82241,"kind":"modifierInvocation","modifierName":{"id":82240,"name":"onlyOwner","nameLocations":["48342:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"48342:9:165"},"nodeType":"ModifierInvocation","src":"48342:9:165"}],"name":"_setStorageSlot","nameLocation":"48293:15:165","parameters":{"id":82239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82238,"mutability":"mutable","name":"namespace","nameLocation":"48323:9:165","nodeType":"VariableDeclaration","scope":82264,"src":"48309:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82237,"name":"string","nodeType":"ElementaryTypeName","src":"48309:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48308:25:165"},"returnParameters":{"id":82242,"nodeType":"ParameterList","parameters":[],"src":"48352:0:165"},"scope":82324,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82323,"nodeType":"FunctionDefinition","src":"48672:396:165","nodes":[],"body":{"id":82322,"nodeType":"Block","src":"48713:355:165","nodes":[],"statements":[{"assignments":[82272],"declarations":[{"constant":false,"id":82272,"mutability":"mutable","name":"router","nameLocation":"48739:6:165","nodeType":"VariableDeclaration","scope":82322,"src":"48723:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82271,"nodeType":"UserDefinedTypeName","pathNode":{"id":82270,"name":"Storage","nameLocations":["48723:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"48723:7:165"},"referencedDeclaration":74490,"src":"48723:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82275,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82273,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"48748: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":82274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48748:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"48723:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82277,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82272,"src":"48775:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48782:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"48775:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83046_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82279,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48795:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"48775:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":82282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48811: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":82281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"48803:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48803:7:165","typeDescriptions":{}}},"id":82283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48803:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"48775:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82285,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74562,"src":"48815:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48815:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48767:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48767:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82288,"nodeType":"ExpressionStatement","src":"48767:82:165"},{"assignments":[82290],"declarations":[{"constant":false,"id":82290,"mutability":"mutable","name":"value","nameLocation":"48868:5:165","nodeType":"VariableDeclaration","scope":82322,"src":"48860:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82289,"name":"uint128","nodeType":"ElementaryTypeName","src":"48860:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82296,"initialValue":{"arguments":[{"expression":{"id":82293,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"48884:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48888:5:165","memberName":"value","nodeType":"MemberAccess","src":"48884:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"48876:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":82291,"name":"uint128","nodeType":"ElementaryTypeName","src":"48876:7:165","typeDescriptions":{}}},"id":82295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48876:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"48860:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82298,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"48912:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48920:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"48912:9:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82301,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74636,"src":"48923:17:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48923:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82297,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48904:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48904:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82304,"nodeType":"ExpressionStatement","src":"48904:39:165"},{"assignments":[82306],"declarations":[{"constant":false,"id":82306,"mutability":"mutable","name":"actorId","nameLocation":"48962:7:165","nodeType":"VariableDeclaration","scope":82322,"src":"48954:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82305,"name":"address","nodeType":"ElementaryTypeName","src":"48954:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82309,"initialValue":{"expression":{"id":82307,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"48972:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48976:6:165","memberName":"sender","nodeType":"MemberAccess","src":"48972:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"48954:28:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82311,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82272,"src":"49000:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49007:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"49000:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83095_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49020:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"49000:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82315,"indexExpression":{"id":82314,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82306,"src":"49029:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49000:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49041:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49000:42:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82318,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74610,"src":"49044:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49044:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82310,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48992:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48992:69:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82321,"nodeType":"ExpressionStatement","src":"48992:69:165"}]},"documentation":{"id":82265,"nodeType":"StructuredDocumentation","src":"48530:137:165","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":82268,"kind":"modifierInvocation","modifierName":{"id":82267,"name":"whenNotPaused","nameLocations":["48699:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"48699:13:165"},"nodeType":"ModifierInvocation","src":"48699:13:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82266,"nodeType":"ParameterList","parameters":[],"src":"48679:2:165"},"returnParameters":{"id":82269,"nodeType":"ParameterList","parameters":[],"src":"48713:0:165"},"scope":82324,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":79465,"name":"IRouter","nameLocations":["1576:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74985,"src":"1576:7:165"},"id":79466,"nodeType":"InheritanceSpecifier","src":"1576:7:165"},{"baseName":{"id":79467,"name":"OwnableUpgradeable","nameLocations":["1589:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1589:18:165"},"id":79468,"nodeType":"InheritanceSpecifier","src":"1589:18:165"},{"baseName":{"id":79469,"name":"PausableUpgradeable","nameLocations":["1613:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"1613:19:165"},"id":79470,"nodeType":"InheritanceSpecifier","src":"1613:19:165"},{"baseName":{"id":79471,"name":"EIP712Upgradeable","nameLocations":["1638:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":44416,"src":"1638:17:165"},"id":79472,"nodeType":"InheritanceSpecifier","src":"1638:17:165"},{"baseName":{"id":79473,"name":"NoncesUpgradeable","nameLocations":["1661:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":43698,"src":"1661:17:165"},"id":79474,"nodeType":"InheritanceSpecifier","src":"1661:17:165"},{"baseName":{"id":79475,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1684:35:165"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"1684:35:165"},"id":79476,"nodeType":"InheritanceSpecifier","src":"1684:35:165"},{"baseName":{"id":79477,"name":"UUPSUpgradeable","nameLocations":["1725:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1725:15:165"},"id":79478,"nodeType":"InheritanceSpecifier","src":"1725:15:165"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82324,46243,44833,43943,43698,44416,44823,43858,42322,43484,42590,74985],"name":"Router","nameLocation":"1562:6:165","scope":82325,"usedErrors":[42158,42163,42339,42342,43601,43737,43740,43875,45427,45440,46100,46105,47372,48774,50701,50706,50711,53880,74539,74542,74545,74547,74550,74553,74556,74559,74562,74565,74572,74581,74586,74593,74596,74598,74600,74602,74604,74606,74608,74610,74612,74614,74616,74618,74620,74622,74624,74626,74628,74630,74632,74634,74636,82854,82857,82860,82863,82866,82869,82872],"usedEvents":[42169,42347,43729,43734,44781,44803,74495,74500,74507,74512,74517,74524,74531,74536]}],"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":"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":"valueClaimsMerkleRoot","type":"bytes32","internalType":"bytes32"},{"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":"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":"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":"AnnouncesCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"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":"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":"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":"0x60a080604052346100c257306080525f51602061594e5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161588790816100c78239608051818181612af40152612b870152f35b6001600160401b0319166001600160401b039081175f51602061594e5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613a0c565b5f5160206158075f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e7146132b2575080630b9737ce1461327f5780630c18d277146131b45780630d91bf2a14612fe657806311bec80d14612fb3578063188509e914612f8557806328e24b3d14612f575780633644e51514612f3c5780633683c4d214612e7f5780633bd109fa14612e305780633d43b41814612ddc5780633f4ba83a14612d5c5780634f1ef28614612b4857806352d1902d14612ae157806353f7fd48146122be5780635c975abb1461228f5780636c2eb35014611d20578063715018a614611cb757806371a8cf2d14611c895780637ecebe0014611c3157806382bdeaad14611b195780638456cb5914611aa657806384b0196e1461197e57806384d22a4f1461192057806388f50cf0146118e75780638b1edf1e146118885780638c4ace6a146117285780638da5cb5b146116f35780638f381dbe146116ad5780639067088e1461166457806396a2ddfa146116365780639eb939a8146115df578063a5d53a441461155f578063ad3cb1cc14611516578063baaf020114611419578063c13911e8146113d5578063c2eb812f1461104e578063ca1e781914610ffe578063cacf66ab14610fc6578063d456fd5114610f90578063e3a6684f14610f51578063e6fabc0914610f18578063ed612f8c14610ee0578063edc8722514610e8b578063ee32004f14610ca9578063f0fd702a14610865578063f1ef31ec14610837578063f2019bfe14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e2613308565b60036102fd5f5160206158075f395f51905f5254429061520f565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f5160206158075f395f51905f5254600701546040516001600160a01b039091168152602090f35b503461032057602036600319011261032057610386610379613308565b6103816139d9565b613968565b80f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b038111610833576103e6903690600401613457565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6108245760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f5160206158075f395f51905f525490600182015415610815578154156107b9575b600382015460446004350135036107aa5765ffffffffffff60048301541665ffffffffffff610485602460043501613955565b161061079c5761049a6004356004018361446f565b926104af60a460043501600435600401614894565b808096925060051b0460201485151715610788576104cf8560051b6153ae565b8695865b81881061063f5750610605965060051b9020906104f5600435600401866148eb565b61050460043560040187614cc2565b90610513602460043501613955565b93610522606460043501613947565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c7815261058760e7826133c7565b5190209283600382015565ffffffffffff6105a6602460043501613955565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff6105fa602460043501613955565b169360243591614f45565b1561063057807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b61065360a460043501600435600401614894565b891015610774578860061b8101358a526019880160205260ff60408b205416600381101561076057600103610751576001916020916107168b8b8e868360061b860101926106a0846148c9565b156107325760061b85013590525060198c01855260408e20805460ff19166002179055601c8c0180546106d29061392c565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610701846148c9565b1515926040519060061b8701358152a26148c9565b908b60061b01358c52825360218b2081860152019701966104d3565b60409260199160061b87013583520187522060ff1981541690556106d5565b636e83084760e11b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b6107d66107ca606460043501613947565b600435600401356143da565b156108065765ffffffffffff6107f0602460043501613955565b16421161045257631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b5080fd5b50346103205780600319360112610320576020601f5f5160206158075f395f51905f52540154604051908152f35b50346103205761014036600319011261032057610880613308565b602435906044356001600160401b038111610ca5576108a3903690600401613457565b90916064359060843560ff81168103610ca15760e4359060ff82168203610c9d576108cc613a0c565b874915610c8e575f5160206158075f395f51905f525494600186015415610c7f576019860196888a528760205260ff60408b205416600381101561076057610c7057895b8049610c6257808303610c4b5750895b828110610c045750854211610bf05760405160208101906001600160fb1b038411610bec5761096b602082610a3695610a3f9760051b8091873781010301601f1981018352826133c7565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c08152610a0460e0826133c7565b519020610a0f6151ae565b906040519161190160f01b83526002830152602282015260c43591604260a43592206152ab565b9092919261532d565b6001600160a01b0316818103610bd75750508690610a7460018060a01b0360068701541695601f601e8201549101549061393a565b93853b15610bd35760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610bb6575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af1908115610bab578491610b7c575b5015610b6d5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b610b9e915060203d602011610ba4575b610b9681836133c7565b810190613599565b5f610b25565b503d610b8c565b6040513d86823e3d90fd5b81610bc3919493946133c7565b610bcf5790855f610ad8565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610c12838686613742565b3514610c1f838686613742565b359015610c30575050600101610920565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b610c6b9061392c565b610910565b6304c51a3360e31b8a5260048afd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b50346103205761012036600319011261032057610cc46132dc565b610ccc6132f2565b6084356001600160801b03811690818103610e33578460c43560ff8116810361083357610cf7613a0c565b610d05602435600435613a33565b6006015490936001600160a01b0390911691823b15610ca557610d4d8480926040518093819263d505accf60e01b8352610104359060e4359060a4358a30336004890161354f565b038183885af1610e76575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115610e6b578691610e4c575b5015610e3d576001600160a01b0390811693908116610e37575033915b833b15610e3357604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af18015610e2857610e13575b602082604051908152f35b610e1e8380926133c7565b6108335781610e08565b6040513d85823e3d90fd5b8480fd5b91610dbd565b631e4e7d0960e21b8552600485fd5b610e65915060203d602011610ba457610b9681836133c7565b5f610da0565b6040513d88823e3d90fd5b81610e80916133c7565b610bd357825f610d58565b50346103205780600319360112610320576020610ed85f5160206158075f395f51905f525460086004610ebe428461520f565b0154910154906001600160801b038260801c9216906143af565b604051908152f35b503461032057806003193601126103205760206004610f0e5f5160206158075f395f51905f5254429061520f565b0154604051908152f35b50346103205780600319360112610320575f5160206158075f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f5160206158075f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f5160206158075f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f5160206158075f395f51905f52540154821c16604051908152f35b503461032057806003193601126103205761104a61103660046110305f5160206158075f395f51905f5254429061520f565b016138d9565b6040519182916020835260208301906134cc565b0390f35b503461032057806003193601126103205760405161106b81613390565b611073613828565b815260405161108181613375565b5f8152602081015f90526020820152611098613828565b60408201526110a56138a6565b60608201526040516110b681613375565b5f808252602082015260808201526110cc613828565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f5160206158075f395f51905f52546111076138a6565b5061111460098201615256565b90611121600f8201615256565b60088201549260405193611134856133ac565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f840154926040519561117f87613390565b60405161118b81613346565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff1660408201528752604051976111c289613375565b60038701548952600487015465ffffffffffff1660208a015260208801988952604051906111ef82613346565b60058801546001600160a01b0390811683526006890154811660208401526007890154166040808401919091528901918252606089019081526112346015890161377a565b9760808a0198895260160161124890613846565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a0161134991613508565b90606001519061027f198a8203016102e08b015261136691613508565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f5160206158075f395f51905f525401600435825284522054166114176040518092613487565bf35b5034610320576020366003190112610320576004356001600160401b0381116108335761144a903690600401613457565b905f5160206158075f395f51905f525490611464836136d7565b9161147260405193846133c7565b83835261147e846136d7565b602084019490601f1901368637601a869201915b8181106114dd57868587604051928392602084019060208552518091526040840192915b8181106114c4575050500390f35b82518452859450602093840193909201916001016114b6565b806114f36114ee6001938588613742565b6137a8565b828060a01b03165f528360205260405f205461150f8288613766565b5201611492565b50346103205780600319360112610320575061104a6040516115396040826133c7565b60058152640352e302e360dc1b60208201526040519182916020835260208301906134a8565b50346103205780600319360112610320575f5160206158075f395f51905f52546001600160a01b039060029061159690429061520f565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c8082520190604082019182604052602083526115da603f199260608301906134a8565b030190f35b50346103205780600319360112610320576115f8613828565b50606061161560165f5160206158075f395f51905f525401613846565b61141760405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f5160206158075f395f51905f52540154604051908152f35b50346103205760203660031901126103205761167e613308565b601a5f5160206158075f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b0382116103205760206116e96116e33660048601613457565b906137bc565b6040519015158152f35b50346103205780600319360112610320575f5160206157875f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff81168103610bd357611752613a0c565b824915611879575f5160206158075f395f51905f52546001810154156108155760198101918385528260205260ff604086205416600381101561186557611856576006820154601e9092015485926001600160a01b031691823b15610ca55760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611841575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610b13565b8161184b916133c7565b610bd357825f61180c565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f5160206158075f395f51905f5254600181019081546118d8576002015463ffffffff16409081156118c9575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f5160206158075f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576119396135b1565b50604061195660155f5160206158075f395f51905f52540161377a565b611417825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f5160206157c75f395f51905f52541580611a90575b15611a53576119f7906119b6614235565b906119bf614302565b906020611a05604051936119d383866133c7565b8385525f368137604051968796600f60f81b885260e08589015260e08801906134a8565b9086820360408801526134a8565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a3c57505050500390f35b835185528695509381019392810192600101611a2d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206158675f395f51905f5254156119a5565b5034610320578060031936011261032057611abf6139d9565b611ac7613a0c565b600160ff195f5160206158275f395f51905f525416175f5160206158275f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161083357611b4a903690600401613457565b905f5160206158075f395f51905f525490611b64836136d7565b91611b7260405193846133c7565b838352611b7e846136d7565b602084019490601f19013686376019869201915b818110611be757868587604051928392602084019060208552518091526040840192915b818110611bc4575050500390f35b9193509160208082611bd96001948851613487565b019401910191849392611bb6565b611bf2818386613742565b3587528260205260ff604088205416611c0b8287613766565b6003821015611c1d5752600101611b92565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b03611c59613308565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f5160206158075f395f51905f52540154604051908152f35b5034610320578060031936011261032057611cd06139d9565b5f5160206157875f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610320578060031936011261032057611d396139d9565b5f5160206158475f395f51905f525460ff8160401c1690811561227a575b5061226b575f5160206158475f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f5160206157875f395f51905f5254611db1906001600160a01b0316611da961522b565b61038161522b565b611db96135e7565b90611dc2613614565b90611dcb61522b565b611dd361522b565b82516001600160401b03811161216e57611dfa5f5160206157675f395f51905f52546141fd565b601f8111612207575b506020601f821160011461218d57829394829392612182575b50508160011b915f199060031b1c1916175f5160206157675f395f51905f52555b81516001600160401b03811161216e57611e645f5160206157a75f395f51905f52546141fd565b601f8111612101575b50602092601f82116001146120885792829382939261207d575b50508160011b915f199060031b1c1916175f5160206157a75f395f51905f52555b805f5160206157c75f395f51905f5255805f5160206158675f395f51905f52555f5160206158075f395f51905f5254611edf613fa1565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611f2d81613375565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611f58428461520f565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa8015610e2857611fa991849161204e575b5061368b565b90816103e8026103e88104830361203a57601e820155816101f402916101f483040361202657601f015560ff60401b195f5160206158475f395f51905f5254165f5160206158475f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b612070915060203d602011612076575b61206881836133c7565b810190613672565b5f611fa3565b503d61205e565b015190505f80611e87565b601f198216935f5160206157a75f395f51905f52845280842091845b8681106120e957508360019596106120d1575b505050811b015f5160206157a75f395f51905f5255611ea8565b01515f1960f88460031b161c191690555f80806120b7565b919260206001819286850151815501940192016120a4565b81811115611e6d575f5160206157a75f395f51905f528352612160907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510612166575b601f82910160051c03910161401e565b5f611e6d565b859150612150565b634e487b7160e01b82526041600452602482fd5b015190505f80611e1c565b5f5160206157675f395f51905f52835280832090601f198316845b8181106121ef575095836001959697106121d7575b505050811b015f5160206157675f395f51905f5255611e3d565b01515f1960f88460031b161c191690555f80806121bd565b9192602060018192868b0151815501940192016121a8565b81811115611e03575f5160206157675f395f51905f528352612265907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c906020851061216657601f82910160051c03910161401e565b5f611e03565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611d57565b5034610320578060031936011261032057602060ff5f5160206158275f395f51905f5254166040519015158152f35b503461032057610160366003190112610320576122d9613308565b906024356001600160a01b03811690819003610833576122f76132dc565b926123006132f2565b9360a4359060843560c43560403660e3190112610ca15761012435976001600160401b038911610c9d573660238a011215610c9d578860040135916001600160401b038311612add57366024848c010111612add57610144356001600160401b038111612ad957612375903690600401613457565b9690945f5160206158475f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612ad1575b6001149081612ac7575b159081612abe575b50612aaf576123f7908a60016001600160401b03195f5160206158475f395f51905f525416175f5160206158475f395f51905f5255612a7f575b611da961522b565b6123ff61522b565b6124076135e7565b61240f613614565b9061241861522b565b61242061522b565b8051906001600160401b038211612a6b578d829161244b5f5160206157675f395f51905f52546141fd565b601f8111612a07575b50602091601f841160011461298b5792612980575b50508160011b915f199060031b1c1916175f5160206157675f395f51905f52555b8051906001600160401b03821161296c578c82916124b55f5160206157a75f395f51905f52546141fd565b601f8111612908575b50602091601f841160011461288c5792612881575b50508160011b915f199060031b1c1916175f5160206157a75f395f51905f52555b8a5f5160206157c75f395f51905f52558a5f5160206158675f395f51905f525561251c61522b565b61252461522b565b4215612872578115612863578181111561285457600a6125448383613633565b048310156128455791600493916020938c60409c8d91825161256684826133c7565b601781528881017f726f757465722e73746f726167652e526f75746572563100000000000000000081526125986139d9565b5f19915190200181528760ff199120169a8b5f5160206158075f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc888d8551908152a16125ea613fa1565b8c6001825191015560028d019063ffffffff8a8201511669ffffffffffff000000008684549301518c1b169169ffffffffffffffffffff19161717905582519061263382613346565b8282526001600160a01b039081168983018190529781169390910183905260058c018054919092166001600160a01b03199182161790915560068b01805482168717905560078b018054909116909117905570030000000000000000000000000000000260088a01556126a46135b1565b506509184e72a000858d516126b881613375565b639502f900815201526015890180546001600160c01b0319166d09184e72a000000000009502f9001790558b5183908d906126f281613346565b8381528781018590520152601689015560178801556018870155601d8601805461ffff191661ffff8916179055885163313ce56760e01b815292839182905afa90811561283b579061274a91899161204e575061368b565b806103e8026103e88104820361282757601e850155806101f402906101f4820403612813576127b26127a86127b99798999a600993601f8801558a519461279086613375565b60e43586526101043560208701526024369201613403565b93429636916136ee565b9301614039565b6127c1575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f5160206158475f395f51905f5254165f5160206158475f395f51905f52555160018152a180f35b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b89526011600452602489fd5b87513d8a823e3d90fd5b63145e348f60e01b8b5260048bfd5b6353b2bbed60e01b8b5260048bfd5b63f7ba6bdb60e01b8b5260048bfd5b63b7d0949760e01b8b5260048bfd5b015190505f806124d3565b5f5160206157a75f395f51905f5281528281209350601f198516905b8181106128f057509084600195949392106128d8575b505050811b015f5160206157a75f395f51905f52556124f4565b01515f1960f88460031b161c191690555f80806128be565b929360206001819287860151815501950193016128a8565b838111156124be575f5160206157a75f395f51905f528352612966907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f860160051c906020871061216657601f82910160051c03910161401e565b5f6124be565b634e487b7160e01b8d52604160045260248dfd5b015190505f80612469565b5f5160206157675f395f51905f5281528281209350601f198516905b8181106129ef57509084600195949392106129d7575b505050811b015f5160206157675f395f51905f525561248a565b01515f1960f88460031b161c191690555f80806129bd565b929360206001819287860151815501950193016129a7565b83811115612454575f5160206157675f395f51905f528352612a65907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f860160051c906020871061216657601f82910160051c03910161401e565b5f612454565b634e487b7160e01b8e52604160045260248efd5b600160401b60ff60401b195f5160206158475f395f51905f525416175f5160206158475f395f51905f52556123ef565b63f92ee8a960e01b8c5260048cfd5b9050155f6123b5565b303b1591506123ad565b8b91506123a3565b8980fd5b8880fd5b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612b395760206040515f5160206157e75f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261032057612b5d613308565b906024356001600160401b03811161083357612b7d903690600401613439565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612d3a575b50612d2b57612bbf6139d9565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612cf3575b50612c0457634c9c8ce360e01b84526004839052602484fd5b9091845f5160206157e75f395f51905f528103612ce15750813b15612ccf575f5160206157e75f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612cb55780836020612ca995519101845af43d15612cad573d91612c8d836133e8565b92612c9b60405194856133c7565b83523d85602085013e615708565b5080f35b606091615708565b50505034612cc05780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612d23575b81612d0f602093836133c7565b81010312612d1f5751945f612beb565b5f80fd5b3d9150612d02565b63703e46dd60e11b8252600482fd5b5f5160206157e75f395f51905f52546001600160a01b0316141590505f612bb2565b5034610320578060031936011261032057612d756139d9565b5f5160206158275f395f51905f525460ff811615612dcd5760ff19165f5160206158275f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612df6613308565b612dfe6139d9565b5f5160206158075f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612e496135b1565b506040612e6d612e685f5160206158075f395f51905f5254429061520f565b6135c9565b60208251918051835201516020820152f35b503461032057606036600319011261032057612e996132dc565b612ea1613a0c565b612eaf602435600435613ea9565b506001600160a01b0390811691908116612f375750335b5f5160206158075f395f51905f5254600501546001600160a01b0316823b15610ca557604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af18015610e2857610e1357602082604051908152f35b612ec6565b50346103205780600319360112610320576020610ed86151ae565b5034610320578060031936011261032057602060015f5160206158075f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f5160206158075f395f51905f52540154604051908152f35b503461032057602036600319011261032057612fcd6139d9565b600435601e5f5160206158075f395f51905f5254015580f35b503461032057610100366003190112610320576130016132dc565b6064356001600160801b03811690818103610ca5578360a43560ff811681036108335761302c613a0c565b61303a602435600435613ea9565b6006015490936001600160a01b0390911691823b15610ca5576130818480926040518093819263d505accf60e01b835260e4359060c435906084358a30336004890161354f565b038183885af161319f575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613194578591613175575b5015613166576001600160a01b0390811692908116613160575033905b5f5160206158075f395f51905f5254600501546001600160a01b0316833b15610e3357604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af18015610e2857610e1357602082604051908152f35b906130f1565b631e4e7d0960e21b8452600484fd5b61318e915060203d602011610ba457610b9681836133c7565b5f6130d4565b6040513d87823e3d90fd5b816131a9916133c7565b610bd357825f61308c565b34612d1f576080366003190112612d1f576131cd6132dc565b6131d56132f2565b906131de613a0c565b6131ec602435600435613a33565b506001600160a01b0390811691908116613279575033915b813b15612d1f57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561326e5760209261325e575b50604051908152f35b5f613268916133c7565b5f613255565b6040513d5f823e3d90fd5b91613204565b34612d1f576020366003190112612d1f576132986139d9565b600435601f5f5160206158075f395f51905f525401555f80f35b34612d1f575f366003190112612d1f57602090601c5f5160206158075f395f51905f525401548152f35b604435906001600160a01b0382168203612d1f57565b606435906001600160a01b0382168203612d1f57565b600435906001600160a01b0382168203612d1f57565b35906001600160a01b0382168203612d1f57565b35906001600160801b0382168203612d1f57565b606081019081106001600160401b0382111761336157604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761336157604052565b61016081019081106001600160401b0382111761336157604052565b608081019081106001600160401b0382111761336157604052565b90601f801991011681019081106001600160401b0382111761336157604052565b6001600160401b03811161336157601f01601f191660200190565b92919261340f826133e8565b9161341d60405193846133c7565b829481845281830111612d1f578281602093845f960137010152565b9080601f83011215612d1f5781602061345493359101613403565b90565b9181601f84011215612d1f578235916001600160401b038311612d1f576020808501948460051b010111612d1f57565b9060038210156134945752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106134e95750505090565b82516001600160a01b03168452602093840193909201916001016134dc565b9060208251805183520151602082015260018060a01b03602083015116604082015260806060613546604085015160a08386015260a08501906134cc565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612d1f57518015158103612d1f5790565b604051906135be82613375565b5f6020838281520152565b906040516135d681613375565b602060018294805484520154910152565b604051906135f66040836133c7565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906136236040836133c7565b60018252603160f81b6020830152565b9190820391821161364057565b634e487b7160e01b5f52601160045260245ffd5b811561365e570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612d1f575160ff81168103612d1f5790565b60ff16604d811161364057600a0a90565b8181029291811591840414171561364057565b9190826040910312612d1f576040516136c781613375565b6020808294803584520135910152565b6001600160401b0381116133615760051b60200190565b9291906136fa816136d7565b9361370860405195866133c7565b602085838152019160051b8101928311612d1f57905b82821061372a57505050565b602080916137378461331e565b81520191019061371e565b91908110156137525760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156137525760209160051b010190565b9060405161378781613375565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612d1f5790565b6137d55f5160206158075f395f51905f5254429061520f565b600301905f5b8381106137eb5750505050600190565b6137f96114ee828685613742565b6001600160a01b03165f9081526020849052604090205460ff1615613820576001016137db565b505050505f90565b6040519061383582613346565b5f6040838281528260208201520152565b9060405161385381613346565b60406002829480548452600181015460208501520154910152565b6040519061387b826133ac565b5f60608360405161388b81613375565b83815283602082015281528260208201528160408201520152565b604051906138b3826133ac565b815f81525f60208201526138c561386e565b604082015260606138d461386e565b910152565b90604051918281549182825260208201905f5260205f20925f5b81811061390a575050613908925003836133c7565b565b84546001600160a01b03168352600194850194879450602090930192016138f3565b5f1981146136405760010190565b9190820180921161364057565b3560ff81168103612d1f5790565b3565ffffffffffff81168103612d1f5790565b6001600160a01b031680156139c6575f5160206157875f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206157875f395f51905f52546001600160a01b031633036139f957565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206158275f395f51905f525416613a2457565b63d93c066560e01b5f5260045ffd5b9190915f5160206158075f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561349457600203613e9a57815f5260205260405f206040516103008101908082106001600160401b03831117612d1f576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612d1f5760018060a01b0382165f52601a84016020528060405f2055601b8401613e5f815461392c565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f5160206158075f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561349457600203613e9a57815f5260205260405f2060405160608101908082106001600160401b03831117612d1f57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612d1f5760018060a01b0382165f52601a84016020528060405f2055601b8401613e5f815461392c565b613fa9613828565b5063ffffffff43116140065765ffffffffffff4211613fee57604051613fce81613346565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061402c57505050565b5f82820155600101614020565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe19821091826141ec575b5050156141dd5751845551600184015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff09182156141d057526002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015614101575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff191690556001016140c3565b5050925f5b845181101561414a576001906001600160a01b036141248288613766565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501614106565b5092600482018151916001600160401b03831161336157600160401b83116133615760209082548484558085106141b5575b5001905f5260205f205f5b838110614198575050505060050155565b82516001600160a01b031681830155602090920191600101614187565b6141ca90845f528580855f200191039061401e565b5f61417c565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6141f692506156e5565b5f80614062565b90600182811c9216801561422b575b602083101461421757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161420c565b604051905f825f5160206157675f395f51905f525491614254836141fd565b80835292600181169081156142e35750600114614278575b613908925003836133c7565b505f5160206157675f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142c75750509060206139089282010161426c565b60209193508060019154838589010152019101909184926142af565b6020925061390894915060ff191682840152151560051b82010161426c565b604051905f825f5160206157a75f395f51905f525491614321836141fd565b80835292600181169081156142e3575060011461434457613908925003836133c7565b505f5160206157a75f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143935750509060206139089282010161426c565b602091935080600191548385890101520191019091849261437b565b6001600160801b038092160291166143c78183613654565b91811561365e5706156134545760010190565b435f19810193929084116136405760ff1643811061442a57505f925b83811015614406575b505f925050565b80408281036144185750600193505050565b15614425575f19016143f6565b6143ff565b6144349043613633565b926143f6565b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918160051b36038313612d1f57565b90608081016001614480828461443a565b90501161488557614491818361443a565b90501561485e576144a19161443a565b1561375257803590603e1981360301821215612d1f5701916144c3838061443a565b9190928260051b9383850460201484151715613640576144e5859694956153ae565b925f945f97601a60fe19853603019501965b888a1015614816578960051b85013586811215612d1f578501614519816137a8565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b0361454b8261538d565b16151580614803575b6147f2575b6001600160a01b0361456a846137a8565b6040516325c42dcd60e11b81526020600482015294911691610124850191906001600160801b03906145e9906001600160a01b036145a78561331e565b166024890152602084013560448901526145c3604085016153a1565b151560648901526001600160a01b036145de6060860161331e565b166084890152613332565b1660a48601526145fb60a082016153a1565b151560c486015260c081013560e486015260e0810135601e1982360301811215612d1f5701803560208201926001600160401b038211612d1f578160051b908136038513612d1f57918088969493610100610104899a989a0152526101448087019287010196925f9060fe1981360301905b8383106146e25750505050505082906001600160801b0382602096039316905af190811561326e575f916146b0575b50816020916001938a0152019901986144f7565b90506020813d82116146da575b816146ca602093836133c7565b81010312612d1f5751600161469c565b3d91506146bd565b919395975091939597610143198a8203018652863583811215612d1f578201602081013582526001600160a01b0361471c6040830161331e565b1660208301526060810135603e193683900301811215612d1f578101602081013591906040016001600160401b038311612d1f578236038113612d1f57829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361478b60808301613332565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612d1f57836020936147cd60e086956101009560a060019a0152016153a1565b151560c0830152601f801991011601019801960193019091899795949298969861466d565b90506147fd8161538d565b90614559565b5061481060a084016148c9565b15614554565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918160061b36038313612d1f57565b358015158103612d1f5790565b903590605e1981360301821215612d1f570190565b60c0820160016148fb828561443a565b905011614c815761490c818461443a565b90501561485e5761491d908361443a565b1561375257803590607e1981360301821215612d1f5701916060830190602061494583613955565b91019065ffffffffffff8061495984613955565b1691161015614c725761496b82613955565b65ffffffffffff80600286015460201c16911610614c63576149b165ffffffffffff6149aa6149a48261499d87613955565b16876153d3565b93613955565b16846153d3565b1115614c54576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446149f7836149ef89896148d6565b01358b61393a565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561326e575f91614c35575b5015614c26575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561326e575f95614bee575b5090614a7c916148d6565b91614a8682613955565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612d1f578101602081359101936001600160401b038211612d1f578160061b36038513612d1f5760606044890152819052869360c485019392915f5b818110614bb657505050836020959365ffffffffffff829484895f9601356064860152614b1f604060018060a01b03920161331e565b16608485015216602483015203925af191821561326e575f92614b80575b50614b4790613955565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b16606082015260468152614b7a6066826133c7565b51902090565b9091506020813d602011614bae575b81614b9c602093836133c7565b81010312612d1f575190614b47614b3d565b3d9150614b8f565b919550919293604080600192838060a01b03614bd18a61331e565b168152602089013560208201520196019101918895949392614ae9565b919094506020823d602011614c1e575b81614c0b602093836133c7565b81010312612d1f57905193614a7c614a71565b3d9150614bfe565b6367b9145160e01b5f5260045ffd5b614c4e915060203d602011610ba457610b9681836133c7565b5f614a24565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918136038313612d1f57565b9060e081016001614cd3828461443a565b905011614f3657614ce4818361443a565b90501561485e57614cf49161443a565b1561375257803590609e1981360301821215612d1f57016060810190614d1a828261443a565b905015614f275765ffffffffffff600284015460201c1691614d3c8342613633565b614d4b60168601548092613654565b9360808401359460018101809111613640578503614f1857614d7085614d769361369c565b9061393a565b93614d85601782015486613633565b4210614f0957614d94906153fb565b934260058601541015614efa57614de9906040840195614ddb614de3614dba8988614c90565b9190614dc6888a61443a565b949091614dd3368c6136af565b943691613403565b9336916136ee565b92614039565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312612d1f5760405193614e2a856133ac565b614e3436846136af565b8552356001600160401b038111612d1f57614e529036908401613439565b602085015235906001600160401b038211612d1f570136601f82011215612d1f57614e849036906020813591016136ee565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110614ed857505050815203808252614b7a90602001826133c7565b82516001600160a01b0316855286955060209485019490920191600101614ebb565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614f6442846153d3565b614f7c614f766016860154809361369c565b8361393a565b918284108080615198575b156151665750831061515857614f9d908361393a565b1061514957614fad905b8261520f565b94601960f81b5f523060601b60025260165260365f20936002811015613494578061503e5750506001810361502f571561375257614fee81614ff592614c90565b3691613403565b9160608351036150205782602061345494015160606040830151920151926001815491015490615416565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150515750505050505f90565b61507690600860048796970154910154906001600160801b038260801c9216906143af565b925f9260035f9201915b8681101561513e576150a6610a366150a0614fee8460051b860186614c90565b866156ab565b6001600160a01b0381165f9081526020859052604090205460ff166150d1575b506001905b01615080565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c1561511657506001906150cb565b94600161512492965d61392c565b93858514615132575f6150c6565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b939291505042821161518957614fad92615181575b50614fa7565b90505f61517b565b6347860b9760e01b5f5260045ffd5b506151a760188701548561393a565b4210614f87565b6151b66155c2565b6151be615619565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152614b7a60c0826133c7565b9061521a908261564b565b1561522557600f0190565b60090190565b60ff5f5160206158475f395f51905f525460401c161561524757565b631afcd79f60e31b5f5260045ffd5b61525e61386e565b506002810154600582015460405192909161529e916004916001600160a01b0316615288866133ac565b615291826135c9565b86526020860152016138d9565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615322579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561326e575f516001600160a01b0381161561531857905f905f90565b505f906001905f90565b5050505f9160039190565b6004811015613494578061533f575050565b600181036153565763f645eedf60e01b5f5260045ffd5b60028103615371575063fce698f760e01b5f5260045260245ffd5b60031461537b5750565b6335e2f38360e21b5f5260045260245ffd5b356001600160801b0381168103612d1f5790565b35908115158203612d1f57565b6040519190601f01601f191682016001600160401b03811183821017612d1f57604052565b60166153f26134549365ffffffffffff600285015460201c1690613633565b91015490613654565b615405428261564b565b156154105760090190565b600f0190565b929391949061542585876156e5565b156155b85782156155b85770014551231950b75fc4402da1732fc9bebe198310156155b8576001169061010e61545a816153ae565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c0908801561513e5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6155ca614235565b80519081156155da576020012090565b50505f5160206157c75f395f51905f525480156155f45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b615621614302565b8051908115615631576020012090565b50505f5160206158675f395f51905f525480156155f45790565b906014600e83015492015480831461569c57818184109311918215911115918190615695575b15615686578261568057505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615671565b63f26224af60e01b5f5260045ffd5b81519190604183036156db576156d49250602082015190606060408401519301515f1a906152ab565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b9061572c575080511561571d57602081519101fd5b63d6bda27560e01b5f5260045ffd5b8151158061575d575b61573d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561573556fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:47517:165:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;7983:34:30;7979:146;;-1:-1:-1;1553:47517:165;;;;;;;;1052:13:60;1553:47517:165;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;8085:29:30;;1553:47517:165;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1553:47517:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613a0c565b5f5160206158075f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e7146132b2575080630b9737ce1461327f5780630c18d277146131b45780630d91bf2a14612fe657806311bec80d14612fb3578063188509e914612f8557806328e24b3d14612f575780633644e51514612f3c5780633683c4d214612e7f5780633bd109fa14612e305780633d43b41814612ddc5780633f4ba83a14612d5c5780634f1ef28614612b4857806352d1902d14612ae157806353f7fd48146122be5780635c975abb1461228f5780636c2eb35014611d20578063715018a614611cb757806371a8cf2d14611c895780637ecebe0014611c3157806382bdeaad14611b195780638456cb5914611aa657806384b0196e1461197e57806384d22a4f1461192057806388f50cf0146118e75780638b1edf1e146118885780638c4ace6a146117285780638da5cb5b146116f35780638f381dbe146116ad5780639067088e1461166457806396a2ddfa146116365780639eb939a8146115df578063a5d53a441461155f578063ad3cb1cc14611516578063baaf020114611419578063c13911e8146113d5578063c2eb812f1461104e578063ca1e781914610ffe578063cacf66ab14610fc6578063d456fd5114610f90578063e3a6684f14610f51578063e6fabc0914610f18578063ed612f8c14610ee0578063edc8722514610e8b578063ee32004f14610ca9578063f0fd702a14610865578063f1ef31ec14610837578063f2019bfe14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e2613308565b60036102fd5f5160206158075f395f51905f5254429061520f565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f5160206158075f395f51905f5254600701546040516001600160a01b039091168152602090f35b503461032057602036600319011261032057610386610379613308565b6103816139d9565b613968565b80f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b038111610833576103e6903690600401613457565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6108245760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f5160206158075f395f51905f525490600182015415610815578154156107b9575b600382015460446004350135036107aa5765ffffffffffff60048301541665ffffffffffff610485602460043501613955565b161061079c5761049a6004356004018361446f565b926104af60a460043501600435600401614894565b808096925060051b0460201485151715610788576104cf8560051b6153ae565b8695865b81881061063f5750610605965060051b9020906104f5600435600401866148eb565b61050460043560040187614cc2565b90610513602460043501613955565b93610522606460043501613947565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c7815261058760e7826133c7565b5190209283600382015565ffffffffffff6105a6602460043501613955565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff6105fa602460043501613955565b169360243591614f45565b1561063057807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b61065360a460043501600435600401614894565b891015610774578860061b8101358a526019880160205260ff60408b205416600381101561076057600103610751576001916020916107168b8b8e868360061b860101926106a0846148c9565b156107325760061b85013590525060198c01855260408e20805460ff19166002179055601c8c0180546106d29061392c565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610701846148c9565b1515926040519060061b8701358152a26148c9565b908b60061b01358c52825360218b2081860152019701966104d3565b60409260199160061b87013583520187522060ff1981541690556106d5565b636e83084760e11b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b6107d66107ca606460043501613947565b600435600401356143da565b156108065765ffffffffffff6107f0602460043501613955565b16421161045257631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b5080fd5b50346103205780600319360112610320576020601f5f5160206158075f395f51905f52540154604051908152f35b50346103205761014036600319011261032057610880613308565b602435906044356001600160401b038111610ca5576108a3903690600401613457565b90916064359060843560ff81168103610ca15760e4359060ff82168203610c9d576108cc613a0c565b874915610c8e575f5160206158075f395f51905f525494600186015415610c7f576019860196888a528760205260ff60408b205416600381101561076057610c7057895b8049610c6257808303610c4b5750895b828110610c045750854211610bf05760405160208101906001600160fb1b038411610bec5761096b602082610a3695610a3f9760051b8091873781010301601f1981018352826133c7565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c08152610a0460e0826133c7565b519020610a0f6151ae565b906040519161190160f01b83526002830152602282015260c43591604260a43592206152ab565b9092919261532d565b6001600160a01b0316818103610bd75750508690610a7460018060a01b0360068701541695601f601e8201549101549061393a565b93853b15610bd35760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610bb6575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af1908115610bab578491610b7c575b5015610b6d5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b610b9e915060203d602011610ba4575b610b9681836133c7565b810190613599565b5f610b25565b503d610b8c565b6040513d86823e3d90fd5b81610bc3919493946133c7565b610bcf5790855f610ad8565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610c12838686613742565b3514610c1f838686613742565b359015610c30575050600101610920565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b610c6b9061392c565b610910565b6304c51a3360e31b8a5260048afd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b50346103205761012036600319011261032057610cc46132dc565b610ccc6132f2565b6084356001600160801b03811690818103610e33578460c43560ff8116810361083357610cf7613a0c565b610d05602435600435613a33565b6006015490936001600160a01b0390911691823b15610ca557610d4d8480926040518093819263d505accf60e01b8352610104359060e4359060a4358a30336004890161354f565b038183885af1610e76575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115610e6b578691610e4c575b5015610e3d576001600160a01b0390811693908116610e37575033915b833b15610e3357604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af18015610e2857610e13575b602082604051908152f35b610e1e8380926133c7565b6108335781610e08565b6040513d85823e3d90fd5b8480fd5b91610dbd565b631e4e7d0960e21b8552600485fd5b610e65915060203d602011610ba457610b9681836133c7565b5f610da0565b6040513d88823e3d90fd5b81610e80916133c7565b610bd357825f610d58565b50346103205780600319360112610320576020610ed85f5160206158075f395f51905f525460086004610ebe428461520f565b0154910154906001600160801b038260801c9216906143af565b604051908152f35b503461032057806003193601126103205760206004610f0e5f5160206158075f395f51905f5254429061520f565b0154604051908152f35b50346103205780600319360112610320575f5160206158075f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f5160206158075f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f5160206158075f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f5160206158075f395f51905f52540154821c16604051908152f35b503461032057806003193601126103205761104a61103660046110305f5160206158075f395f51905f5254429061520f565b016138d9565b6040519182916020835260208301906134cc565b0390f35b503461032057806003193601126103205760405161106b81613390565b611073613828565b815260405161108181613375565b5f8152602081015f90526020820152611098613828565b60408201526110a56138a6565b60608201526040516110b681613375565b5f808252602082015260808201526110cc613828565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f5160206158075f395f51905f52546111076138a6565b5061111460098201615256565b90611121600f8201615256565b60088201549260405193611134856133ac565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f840154926040519561117f87613390565b60405161118b81613346565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff1660408201528752604051976111c289613375565b60038701548952600487015465ffffffffffff1660208a015260208801988952604051906111ef82613346565b60058801546001600160a01b0390811683526006890154811660208401526007890154166040808401919091528901918252606089019081526112346015890161377a565b9760808a0198895260160161124890613846565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a0161134991613508565b90606001519061027f198a8203016102e08b015261136691613508565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f5160206158075f395f51905f525401600435825284522054166114176040518092613487565bf35b5034610320576020366003190112610320576004356001600160401b0381116108335761144a903690600401613457565b905f5160206158075f395f51905f525490611464836136d7565b9161147260405193846133c7565b83835261147e846136d7565b602084019490601f1901368637601a869201915b8181106114dd57868587604051928392602084019060208552518091526040840192915b8181106114c4575050500390f35b82518452859450602093840193909201916001016114b6565b806114f36114ee6001938588613742565b6137a8565b828060a01b03165f528360205260405f205461150f8288613766565b5201611492565b50346103205780600319360112610320575061104a6040516115396040826133c7565b60058152640352e302e360dc1b60208201526040519182916020835260208301906134a8565b50346103205780600319360112610320575f5160206158075f395f51905f52546001600160a01b039060029061159690429061520f565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c8082520190604082019182604052602083526115da603f199260608301906134a8565b030190f35b50346103205780600319360112610320576115f8613828565b50606061161560165f5160206158075f395f51905f525401613846565b61141760405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f5160206158075f395f51905f52540154604051908152f35b50346103205760203660031901126103205761167e613308565b601a5f5160206158075f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b0382116103205760206116e96116e33660048601613457565b906137bc565b6040519015158152f35b50346103205780600319360112610320575f5160206157875f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff81168103610bd357611752613a0c565b824915611879575f5160206158075f395f51905f52546001810154156108155760198101918385528260205260ff604086205416600381101561186557611856576006820154601e9092015485926001600160a01b031691823b15610ca55760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611841575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610b13565b8161184b916133c7565b610bd357825f61180c565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f5160206158075f395f51905f5254600181019081546118d8576002015463ffffffff16409081156118c9575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f5160206158075f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576119396135b1565b50604061195660155f5160206158075f395f51905f52540161377a565b611417825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f5160206157c75f395f51905f52541580611a90575b15611a53576119f7906119b6614235565b906119bf614302565b906020611a05604051936119d383866133c7565b8385525f368137604051968796600f60f81b885260e08589015260e08801906134a8565b9086820360408801526134a8565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a3c57505050500390f35b835185528695509381019392810192600101611a2d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206158675f395f51905f5254156119a5565b5034610320578060031936011261032057611abf6139d9565b611ac7613a0c565b600160ff195f5160206158275f395f51905f525416175f5160206158275f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161083357611b4a903690600401613457565b905f5160206158075f395f51905f525490611b64836136d7565b91611b7260405193846133c7565b838352611b7e846136d7565b602084019490601f19013686376019869201915b818110611be757868587604051928392602084019060208552518091526040840192915b818110611bc4575050500390f35b9193509160208082611bd96001948851613487565b019401910191849392611bb6565b611bf2818386613742565b3587528260205260ff604088205416611c0b8287613766565b6003821015611c1d5752600101611b92565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b03611c59613308565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f5160206158075f395f51905f52540154604051908152f35b5034610320578060031936011261032057611cd06139d9565b5f5160206157875f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610320578060031936011261032057611d396139d9565b5f5160206158475f395f51905f525460ff8160401c1690811561227a575b5061226b575f5160206158475f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f5160206157875f395f51905f5254611db1906001600160a01b0316611da961522b565b61038161522b565b611db96135e7565b90611dc2613614565b90611dcb61522b565b611dd361522b565b82516001600160401b03811161216e57611dfa5f5160206157675f395f51905f52546141fd565b601f8111612207575b506020601f821160011461218d57829394829392612182575b50508160011b915f199060031b1c1916175f5160206157675f395f51905f52555b81516001600160401b03811161216e57611e645f5160206157a75f395f51905f52546141fd565b601f8111612101575b50602092601f82116001146120885792829382939261207d575b50508160011b915f199060031b1c1916175f5160206157a75f395f51905f52555b805f5160206157c75f395f51905f5255805f5160206158675f395f51905f52555f5160206158075f395f51905f5254611edf613fa1565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611f2d81613375565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611f58428461520f565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa8015610e2857611fa991849161204e575b5061368b565b90816103e8026103e88104830361203a57601e820155816101f402916101f483040361202657601f015560ff60401b195f5160206158475f395f51905f5254165f5160206158475f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b612070915060203d602011612076575b61206881836133c7565b810190613672565b5f611fa3565b503d61205e565b015190505f80611e87565b601f198216935f5160206157a75f395f51905f52845280842091845b8681106120e957508360019596106120d1575b505050811b015f5160206157a75f395f51905f5255611ea8565b01515f1960f88460031b161c191690555f80806120b7565b919260206001819286850151815501940192016120a4565b81811115611e6d575f5160206157a75f395f51905f528352612160907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510612166575b601f82910160051c03910161401e565b5f611e6d565b859150612150565b634e487b7160e01b82526041600452602482fd5b015190505f80611e1c565b5f5160206157675f395f51905f52835280832090601f198316845b8181106121ef575095836001959697106121d7575b505050811b015f5160206157675f395f51905f5255611e3d565b01515f1960f88460031b161c191690555f80806121bd565b9192602060018192868b0151815501940192016121a8565b81811115611e03575f5160206157675f395f51905f528352612265907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c906020851061216657601f82910160051c03910161401e565b5f611e03565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611d57565b5034610320578060031936011261032057602060ff5f5160206158275f395f51905f5254166040519015158152f35b503461032057610160366003190112610320576122d9613308565b906024356001600160a01b03811690819003610833576122f76132dc565b926123006132f2565b9360a4359060843560c43560403660e3190112610ca15761012435976001600160401b038911610c9d573660238a011215610c9d578860040135916001600160401b038311612add57366024848c010111612add57610144356001600160401b038111612ad957612375903690600401613457565b9690945f5160206158475f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612ad1575b6001149081612ac7575b159081612abe575b50612aaf576123f7908a60016001600160401b03195f5160206158475f395f51905f525416175f5160206158475f395f51905f5255612a7f575b611da961522b565b6123ff61522b565b6124076135e7565b61240f613614565b9061241861522b565b61242061522b565b8051906001600160401b038211612a6b578d829161244b5f5160206157675f395f51905f52546141fd565b601f8111612a07575b50602091601f841160011461298b5792612980575b50508160011b915f199060031b1c1916175f5160206157675f395f51905f52555b8051906001600160401b03821161296c578c82916124b55f5160206157a75f395f51905f52546141fd565b601f8111612908575b50602091601f841160011461288c5792612881575b50508160011b915f199060031b1c1916175f5160206157a75f395f51905f52555b8a5f5160206157c75f395f51905f52558a5f5160206158675f395f51905f525561251c61522b565b61252461522b565b4215612872578115612863578181111561285457600a6125448383613633565b048310156128455791600493916020938c60409c8d91825161256684826133c7565b601781528881017f726f757465722e73746f726167652e526f75746572563100000000000000000081526125986139d9565b5f19915190200181528760ff199120169a8b5f5160206158075f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc888d8551908152a16125ea613fa1565b8c6001825191015560028d019063ffffffff8a8201511669ffffffffffff000000008684549301518c1b169169ffffffffffffffffffff19161717905582519061263382613346565b8282526001600160a01b039081168983018190529781169390910183905260058c018054919092166001600160a01b03199182161790915560068b01805482168717905560078b018054909116909117905570030000000000000000000000000000000260088a01556126a46135b1565b506509184e72a000858d516126b881613375565b639502f900815201526015890180546001600160c01b0319166d09184e72a000000000009502f9001790558b5183908d906126f281613346565b8381528781018590520152601689015560178801556018870155601d8601805461ffff191661ffff8916179055885163313ce56760e01b815292839182905afa90811561283b579061274a91899161204e575061368b565b806103e8026103e88104820361282757601e850155806101f402906101f4820403612813576127b26127a86127b99798999a600993601f8801558a519461279086613375565b60e43586526101043560208701526024369201613403565b93429636916136ee565b9301614039565b6127c1575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f5160206158475f395f51905f5254165f5160206158475f395f51905f52555160018152a180f35b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b89526011600452602489fd5b87513d8a823e3d90fd5b63145e348f60e01b8b5260048bfd5b6353b2bbed60e01b8b5260048bfd5b63f7ba6bdb60e01b8b5260048bfd5b63b7d0949760e01b8b5260048bfd5b015190505f806124d3565b5f5160206157a75f395f51905f5281528281209350601f198516905b8181106128f057509084600195949392106128d8575b505050811b015f5160206157a75f395f51905f52556124f4565b01515f1960f88460031b161c191690555f80806128be565b929360206001819287860151815501950193016128a8565b838111156124be575f5160206157a75f395f51905f528352612966907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f860160051c906020871061216657601f82910160051c03910161401e565b5f6124be565b634e487b7160e01b8d52604160045260248dfd5b015190505f80612469565b5f5160206157675f395f51905f5281528281209350601f198516905b8181106129ef57509084600195949392106129d7575b505050811b015f5160206157675f395f51905f525561248a565b01515f1960f88460031b161c191690555f80806129bd565b929360206001819287860151815501950193016129a7565b83811115612454575f5160206157675f395f51905f528352612a65907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f860160051c906020871061216657601f82910160051c03910161401e565b5f612454565b634e487b7160e01b8e52604160045260248efd5b600160401b60ff60401b195f5160206158475f395f51905f525416175f5160206158475f395f51905f52556123ef565b63f92ee8a960e01b8c5260048cfd5b9050155f6123b5565b303b1591506123ad565b8b91506123a3565b8980fd5b8880fd5b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612b395760206040515f5160206157e75f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261032057612b5d613308565b906024356001600160401b03811161083357612b7d903690600401613439565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612d3a575b50612d2b57612bbf6139d9565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612cf3575b50612c0457634c9c8ce360e01b84526004839052602484fd5b9091845f5160206157e75f395f51905f528103612ce15750813b15612ccf575f5160206157e75f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612cb55780836020612ca995519101845af43d15612cad573d91612c8d836133e8565b92612c9b60405194856133c7565b83523d85602085013e615708565b5080f35b606091615708565b50505034612cc05780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612d23575b81612d0f602093836133c7565b81010312612d1f5751945f612beb565b5f80fd5b3d9150612d02565b63703e46dd60e11b8252600482fd5b5f5160206157e75f395f51905f52546001600160a01b0316141590505f612bb2565b5034610320578060031936011261032057612d756139d9565b5f5160206158275f395f51905f525460ff811615612dcd5760ff19165f5160206158275f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612df6613308565b612dfe6139d9565b5f5160206158075f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612e496135b1565b506040612e6d612e685f5160206158075f395f51905f5254429061520f565b6135c9565b60208251918051835201516020820152f35b503461032057606036600319011261032057612e996132dc565b612ea1613a0c565b612eaf602435600435613ea9565b506001600160a01b0390811691908116612f375750335b5f5160206158075f395f51905f5254600501546001600160a01b0316823b15610ca557604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af18015610e2857610e1357602082604051908152f35b612ec6565b50346103205780600319360112610320576020610ed86151ae565b5034610320578060031936011261032057602060015f5160206158075f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f5160206158075f395f51905f52540154604051908152f35b503461032057602036600319011261032057612fcd6139d9565b600435601e5f5160206158075f395f51905f5254015580f35b503461032057610100366003190112610320576130016132dc565b6064356001600160801b03811690818103610ca5578360a43560ff811681036108335761302c613a0c565b61303a602435600435613ea9565b6006015490936001600160a01b0390911691823b15610ca5576130818480926040518093819263d505accf60e01b835260e4359060c435906084358a30336004890161354f565b038183885af161319f575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613194578591613175575b5015613166576001600160a01b0390811692908116613160575033905b5f5160206158075f395f51905f5254600501546001600160a01b0316833b15610e3357604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af18015610e2857610e1357602082604051908152f35b906130f1565b631e4e7d0960e21b8452600484fd5b61318e915060203d602011610ba457610b9681836133c7565b5f6130d4565b6040513d87823e3d90fd5b816131a9916133c7565b610bd357825f61308c565b34612d1f576080366003190112612d1f576131cd6132dc565b6131d56132f2565b906131de613a0c565b6131ec602435600435613a33565b506001600160a01b0390811691908116613279575033915b813b15612d1f57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561326e5760209261325e575b50604051908152f35b5f613268916133c7565b5f613255565b6040513d5f823e3d90fd5b91613204565b34612d1f576020366003190112612d1f576132986139d9565b600435601f5f5160206158075f395f51905f525401555f80f35b34612d1f575f366003190112612d1f57602090601c5f5160206158075f395f51905f525401548152f35b604435906001600160a01b0382168203612d1f57565b606435906001600160a01b0382168203612d1f57565b600435906001600160a01b0382168203612d1f57565b35906001600160a01b0382168203612d1f57565b35906001600160801b0382168203612d1f57565b606081019081106001600160401b0382111761336157604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761336157604052565b61016081019081106001600160401b0382111761336157604052565b608081019081106001600160401b0382111761336157604052565b90601f801991011681019081106001600160401b0382111761336157604052565b6001600160401b03811161336157601f01601f191660200190565b92919261340f826133e8565b9161341d60405193846133c7565b829481845281830111612d1f578281602093845f960137010152565b9080601f83011215612d1f5781602061345493359101613403565b90565b9181601f84011215612d1f578235916001600160401b038311612d1f576020808501948460051b010111612d1f57565b9060038210156134945752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106134e95750505090565b82516001600160a01b03168452602093840193909201916001016134dc565b9060208251805183520151602082015260018060a01b03602083015116604082015260806060613546604085015160a08386015260a08501906134cc565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612d1f57518015158103612d1f5790565b604051906135be82613375565b5f6020838281520152565b906040516135d681613375565b602060018294805484520154910152565b604051906135f66040836133c7565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906136236040836133c7565b60018252603160f81b6020830152565b9190820391821161364057565b634e487b7160e01b5f52601160045260245ffd5b811561365e570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612d1f575160ff81168103612d1f5790565b60ff16604d811161364057600a0a90565b8181029291811591840414171561364057565b9190826040910312612d1f576040516136c781613375565b6020808294803584520135910152565b6001600160401b0381116133615760051b60200190565b9291906136fa816136d7565b9361370860405195866133c7565b602085838152019160051b8101928311612d1f57905b82821061372a57505050565b602080916137378461331e565b81520191019061371e565b91908110156137525760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156137525760209160051b010190565b9060405161378781613375565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612d1f5790565b6137d55f5160206158075f395f51905f5254429061520f565b600301905f5b8381106137eb5750505050600190565b6137f96114ee828685613742565b6001600160a01b03165f9081526020849052604090205460ff1615613820576001016137db565b505050505f90565b6040519061383582613346565b5f6040838281528260208201520152565b9060405161385381613346565b60406002829480548452600181015460208501520154910152565b6040519061387b826133ac565b5f60608360405161388b81613375565b83815283602082015281528260208201528160408201520152565b604051906138b3826133ac565b815f81525f60208201526138c561386e565b604082015260606138d461386e565b910152565b90604051918281549182825260208201905f5260205f20925f5b81811061390a575050613908925003836133c7565b565b84546001600160a01b03168352600194850194879450602090930192016138f3565b5f1981146136405760010190565b9190820180921161364057565b3560ff81168103612d1f5790565b3565ffffffffffff81168103612d1f5790565b6001600160a01b031680156139c6575f5160206157875f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206157875f395f51905f52546001600160a01b031633036139f957565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206158275f395f51905f525416613a2457565b63d93c066560e01b5f5260045ffd5b9190915f5160206158075f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561349457600203613e9a57815f5260205260405f206040516103008101908082106001600160401b03831117612d1f576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612d1f5760018060a01b0382165f52601a84016020528060405f2055601b8401613e5f815461392c565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f5160206158075f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561349457600203613e9a57815f5260205260405f2060405160608101908082106001600160401b03831117612d1f57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612d1f5760018060a01b0382165f52601a84016020528060405f2055601b8401613e5f815461392c565b613fa9613828565b5063ffffffff43116140065765ffffffffffff4211613fee57604051613fce81613346565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061402c57505050565b5f82820155600101614020565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe19821091826141ec575b5050156141dd5751845551600184015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff09182156141d057526002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015614101575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff191690556001016140c3565b5050925f5b845181101561414a576001906001600160a01b036141248288613766565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501614106565b5092600482018151916001600160401b03831161336157600160401b83116133615760209082548484558085106141b5575b5001905f5260205f205f5b838110614198575050505060050155565b82516001600160a01b031681830155602090920191600101614187565b6141ca90845f528580855f200191039061401e565b5f61417c565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6141f692506156e5565b5f80614062565b90600182811c9216801561422b575b602083101461421757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161420c565b604051905f825f5160206157675f395f51905f525491614254836141fd565b80835292600181169081156142e35750600114614278575b613908925003836133c7565b505f5160206157675f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142c75750509060206139089282010161426c565b60209193508060019154838589010152019101909184926142af565b6020925061390894915060ff191682840152151560051b82010161426c565b604051905f825f5160206157a75f395f51905f525491614321836141fd565b80835292600181169081156142e3575060011461434457613908925003836133c7565b505f5160206157a75f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143935750509060206139089282010161426c565b602091935080600191548385890101520191019091849261437b565b6001600160801b038092160291166143c78183613654565b91811561365e5706156134545760010190565b435f19810193929084116136405760ff1643811061442a57505f925b83811015614406575b505f925050565b80408281036144185750600193505050565b15614425575f19016143f6565b6143ff565b6144349043613633565b926143f6565b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918160051b36038313612d1f57565b90608081016001614480828461443a565b90501161488557614491818361443a565b90501561485e576144a19161443a565b1561375257803590603e1981360301821215612d1f5701916144c3838061443a565b9190928260051b9383850460201484151715613640576144e5859694956153ae565b925f945f97601a60fe19853603019501965b888a1015614816578960051b85013586811215612d1f578501614519816137a8565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b0361454b8261538d565b16151580614803575b6147f2575b6001600160a01b0361456a846137a8565b6040516325c42dcd60e11b81526020600482015294911691610124850191906001600160801b03906145e9906001600160a01b036145a78561331e565b166024890152602084013560448901526145c3604085016153a1565b151560648901526001600160a01b036145de6060860161331e565b166084890152613332565b1660a48601526145fb60a082016153a1565b151560c486015260c081013560e486015260e0810135601e1982360301811215612d1f5701803560208201926001600160401b038211612d1f578160051b908136038513612d1f57918088969493610100610104899a989a0152526101448087019287010196925f9060fe1981360301905b8383106146e25750505050505082906001600160801b0382602096039316905af190811561326e575f916146b0575b50816020916001938a0152019901986144f7565b90506020813d82116146da575b816146ca602093836133c7565b81010312612d1f5751600161469c565b3d91506146bd565b919395975091939597610143198a8203018652863583811215612d1f578201602081013582526001600160a01b0361471c6040830161331e565b1660208301526060810135603e193683900301811215612d1f578101602081013591906040016001600160401b038311612d1f578236038113612d1f57829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361478b60808301613332565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612d1f57836020936147cd60e086956101009560a060019a0152016153a1565b151560c0830152601f801991011601019801960193019091899795949298969861466d565b90506147fd8161538d565b90614559565b5061481060a084016148c9565b15614554565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918160061b36038313612d1f57565b358015158103612d1f5790565b903590605e1981360301821215612d1f570190565b60c0820160016148fb828561443a565b905011614c815761490c818461443a565b90501561485e5761491d908361443a565b1561375257803590607e1981360301821215612d1f5701916060830190602061494583613955565b91019065ffffffffffff8061495984613955565b1691161015614c725761496b82613955565b65ffffffffffff80600286015460201c16911610614c63576149b165ffffffffffff6149aa6149a48261499d87613955565b16876153d3565b93613955565b16846153d3565b1115614c54576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446149f7836149ef89896148d6565b01358b61393a565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561326e575f91614c35575b5015614c26575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561326e575f95614bee575b5090614a7c916148d6565b91614a8682613955565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612d1f578101602081359101936001600160401b038211612d1f578160061b36038513612d1f5760606044890152819052869360c485019392915f5b818110614bb657505050836020959365ffffffffffff829484895f9601356064860152614b1f604060018060a01b03920161331e565b16608485015216602483015203925af191821561326e575f92614b80575b50614b4790613955565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b16606082015260468152614b7a6066826133c7565b51902090565b9091506020813d602011614bae575b81614b9c602093836133c7565b81010312612d1f575190614b47614b3d565b3d9150614b8f565b919550919293604080600192838060a01b03614bd18a61331e565b168152602089013560208201520196019101918895949392614ae9565b919094506020823d602011614c1e575b81614c0b602093836133c7565b81010312612d1f57905193614a7c614a71565b3d9150614bfe565b6367b9145160e01b5f5260045ffd5b614c4e915060203d602011610ba457610b9681836133c7565b5f614a24565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612d1f57018035906001600160401b038211612d1f57602001918136038313612d1f57565b9060e081016001614cd3828461443a565b905011614f3657614ce4818361443a565b90501561485e57614cf49161443a565b1561375257803590609e1981360301821215612d1f57016060810190614d1a828261443a565b905015614f275765ffffffffffff600284015460201c1691614d3c8342613633565b614d4b60168601548092613654565b9360808401359460018101809111613640578503614f1857614d7085614d769361369c565b9061393a565b93614d85601782015486613633565b4210614f0957614d94906153fb565b934260058601541015614efa57614de9906040840195614ddb614de3614dba8988614c90565b9190614dc6888a61443a565b949091614dd3368c6136af565b943691613403565b9336916136ee565b92614039565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312612d1f5760405193614e2a856133ac565b614e3436846136af565b8552356001600160401b038111612d1f57614e529036908401613439565b602085015235906001600160401b038211612d1f570136601f82011215612d1f57614e849036906020813591016136ee565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110614ed857505050815203808252614b7a90602001826133c7565b82516001600160a01b0316855286955060209485019490920191600101614ebb565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614f6442846153d3565b614f7c614f766016860154809361369c565b8361393a565b918284108080615198575b156151665750831061515857614f9d908361393a565b1061514957614fad905b8261520f565b94601960f81b5f523060601b60025260165260365f20936002811015613494578061503e5750506001810361502f571561375257614fee81614ff592614c90565b3691613403565b9160608351036150205782602061345494015160606040830151920151926001815491015490615416565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150515750505050505f90565b61507690600860048796970154910154906001600160801b038260801c9216906143af565b925f9260035f9201915b8681101561513e576150a6610a366150a0614fee8460051b860186614c90565b866156ab565b6001600160a01b0381165f9081526020859052604090205460ff166150d1575b506001905b01615080565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c1561511657506001906150cb565b94600161512492965d61392c565b93858514615132575f6150c6565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b939291505042821161518957614fad92615181575b50614fa7565b90505f61517b565b6347860b9760e01b5f5260045ffd5b506151a760188701548561393a565b4210614f87565b6151b66155c2565b6151be615619565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152614b7a60c0826133c7565b9061521a908261564b565b1561522557600f0190565b60090190565b60ff5f5160206158475f395f51905f525460401c161561524757565b631afcd79f60e31b5f5260045ffd5b61525e61386e565b506002810154600582015460405192909161529e916004916001600160a01b0316615288866133ac565b615291826135c9565b86526020860152016138d9565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615322579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561326e575f516001600160a01b0381161561531857905f905f90565b505f906001905f90565b5050505f9160039190565b6004811015613494578061533f575050565b600181036153565763f645eedf60e01b5f5260045ffd5b60028103615371575063fce698f760e01b5f5260045260245ffd5b60031461537b5750565b6335e2f38360e21b5f5260045260245ffd5b356001600160801b0381168103612d1f5790565b35908115158203612d1f57565b6040519190601f01601f191682016001600160401b03811183821017612d1f57604052565b60166153f26134549365ffffffffffff600285015460201c1690613633565b91015490613654565b615405428261564b565b156154105760090190565b600f0190565b929391949061542585876156e5565b156155b85782156155b85770014551231950b75fc4402da1732fc9bebe198310156155b8576001169061010e61545a816153ae565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c0908801561513e5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6155ca614235565b80519081156155da576020012090565b50505f5160206157c75f395f51905f525480156155f45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b615621614302565b8051908115615631576020012090565b50505f5160206158675f395f51905f525480156155f45790565b906014600e83015492015480831461569c57818184109311918215911115918190615695575b15615686578261568057505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615671565b63f26224af60e01b5f5260045ffd5b81519190604183036156db576156d49250602082015190606060408401519301515f1a906152ab565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b9061572c575080511561571d57602081519101fd5b63d6bda27560e01b5f5260045ffd5b8151158061575d575b61573d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561573556fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1553:47517:165:-:0;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;48775:19;;;1553:47517;48775:38;1553:47517;;-1:-1:-1;;;;;48884:9:165;1553:47517;48912:9;1553:47517;;48972:10;-1:-1:-1;1553:47517:165;;;49000:28;;;;;1553:47517;;;;;;49000:42;1553:47517;;;;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;14987:40;28103:37:170;-1:-1:-1;;;;;;;;;;;1553:47517:165;28124:15:170;28103:37;;:::i;:::-;14987:40:165;:52;1553:47517;;;;;;-1:-1:-1;1553:47517:165;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;13111:34;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;2357:1:29;1553:47517:165;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1553:47517:165;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1553:47517:165;36887:19;1948:4:38;36887:19:165;;1553:47517;36887:38;1553:47517;;;;37125:20;37121:295;;1553:47517;37529:27;;;1553:47517;;;;37565:33;1553:47517;37529:69;1553:47517;;;;37664:37;;1553:47517;;;37705:21;1553:47517;;;37705:21;;:::i;:::-;1553:47517;-1:-1:-1;1553:47517:165;;37795:28;1553:47517;;;;37795:28;;:::i;:::-;1553:47517;40621:22;;1553:47517;;40621:22;1553:47517;;;;40621:22;:::i;:::-;2366:5;;;;;;;;1553:47517;2366:5;;;;;;;40756:40;2366:5;;;40756:40;:::i;:::-;40806:18;;;40855:22;;;;;;2366:5;38593:146;2366:5;;;;1083:131:25;;1553:47517:165;37935:30;1553:47517;;;;37935:30;;:::i;:::-;38011:33;1553:47517;;;;38011:33;;:::i;:::-;1553:47517;38144:21;1553:47517;;;37705:21;38144;:::i;:::-;1553:47517;38226:13;;1553:47517;;38226:13;;:::i;:::-;1553:47517;;;19616:303:170;1553:47517:165;19616:303:170;;1553:47517:165;;;;;;;;2288:3;1553:47517;;;;;;;;;;;;;37565:33;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19616:303:170;;;;;;:::i;:::-;1553:47517:165;19593:336:170;;37529:27:165;;;;;1553:47517;;38498:21;1553:47517;;;37705:21;38498;:::i;:::-;1553:47517;2288:3;1553:47517;;37664:37;;1553:47517;;;;37664:37;;1553:47517;38535:26;1553:47517;;;;;;38535:26;1553:47517;38704:21;1553:47517;;;37705:21;38704;:::i;:::-;1553:47517;;;;38593:146;;:::i;:::-;2113:66;;;3556:68:76;757:66:38;3556:68:76;1553:47517:165;;2113:66;-1:-1:-1;;;2113:66:165;;1553:47517;;2113:66;40879:3;40941:22;40621;1553:47517;;40621:22;1553:47517;;;;40941:22;:::i;:::-;1553:47517;;;;;;;;;;;;;41006:19;;;1553:47517;;;;;;;;37529:27;1553:47517;;;;;1948:4:38;41006:79:165;1553:47517;;1948:4:38;1553:47517:165;;;41584:17;1553:47517;;;;;;;;;41164:17;;;;;:::i;:::-;;;;1553:47517;;;;;;;-1:-1:-1;41006:19:165;;;1553:47517;;;;;;;-1:-1:-1;;1553:47517:165;;;;;41287:39;;;1553:47517;;41287:41;;;:::i;:::-;1553:47517;;41160:270;41482:17;41449:51;41482:17;;;;:::i;:::-;1553:47517;;;;;;;;;;;;;41449:51;41584:17;:::i;:::-;1553:47517;;;;;;17370:159:170;;;;;;;4093:83:22;;;;1553:47517:165;40879:3;1553:47517;40840:13;;;41160:270;1553:47517;;41006:19;1553:47517;;;;;;;;41006:19;1553:47517;;;;;;;;;;41160:270;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;17370:159:170;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;1553:47517;;2288:3;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;37121:295;37169:56;37211:13;;1553:47517;;37211:13;;:::i;:::-;1553:47517;;;;;37169:56;:::i;:::-;1553:47517;;;;37356:21;1553:47517;;;37356:21;;:::i;:::-;1553:47517;37338:15;:39;37121:295;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1553:47517:165;1789:30:38;;1553:47517:165;;;;;;;;;;;;;;;;;;19900:52;-1:-1:-1;;;;;;;;;;;1553:47517:165;19900:52;1553:47517;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;25864:11:165;;:16;1553:47517;;-1:-1:-1;;;;;;;;;;;1553:47517:165;25960:19;1553:47517;25960:19;;1553:47517;25960:38;1553:47517;;26053:19;;;1553:47517;;;;;;;;;;;;;;;;;;;;;26163:29;26233:27;;;;;26375:39;;;1553:47517;;26495:13;;26510:22;;;;;;26789:15;;;:28;1553:47517;;;;;27053:29;;;-1:-1:-1;;;;;2670:66:165;;;;27053:29;1553:47517;2670:66;7051:25:77;2670:66:165;7105:8:77;2670:66:165;;;;;;;;;27053:29;;1553:47517;;27053:29;;;;;;:::i;:::-;1553:47517;27043:40;;1553:47517;;;;;;;;;;;;972:64:36;1553:47517:165;;;;;;;;;;;;;;;26902:261;1553:47517;26902:261;;1553:47517;2670:66;1553:47517;;2670:66;1553:47517;2670:66;;1553:47517;2670:66;1553:47517;2670:66;;1553:47517;;2670:66;;1553:47517;;2670:66;;1553:47517;2670:66;1553:47517;2670:66;;1553:47517;;26902:261;;;1553:47517;26902:261;;:::i;:::-;1553:47517;26879:294;;3980:23:40;;:::i;:::-;3993:249:80;1553:47517:165;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1553:47517:165;;;3993:249:80;1553:47517:165;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47517:165;27307:20;;;2670:66;;1553:47517;;;;27485:100;1553:47517;;;;;27415:32;;;1553:47517;;27485:48;27536:49;27485:48;;;1553:47517;27536:49;;1553:47517;27485:100;;:::i;:::-;27599:77;;;;;;1553:47517;;-1:-1:-1;;;27599:77:165;;-1:-1:-1;;;;;1553:47517:165;;;27599:77;;1553:47517;27639:4;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27599:77;;;;;26490:223;-1:-1:-1;1553:47517:165;;-1:-1:-1;;;27712:57:165;;-1:-1:-1;;;;;1553:47517:165;;;;27712:57;;1553:47517;27639:4;1553:47517;;;;;;;;;;;;;;;;;;;;;;;27712:57;;;;;;;;;;;;;;26490:223;1553:47517;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;23301:19;1553:47517;;;;;;;27915:32;;;1553:47517;;;-1:-1:-1;;;1553:47517:165;;;;;27712:57;;;;1553:47517;27712:57;1553:47517;27712:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:47517;;;;;;;;;27599:77;;;;;;;;:::i;:::-;1553:47517;;27599:77;;;;;1553:47517;;;;27599:77;1553:47517;;;2670:66;-1:-1:-1;;;2670:66:165;;1553:47517;;;;;2670:66;;;1553:47517;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;26534:3;26580:11;;26613:14;;;;;;:::i;:::-;1553:47517;26613:34;26668:14;;;;;:::i;:::-;1553:47517;;;;;26534:3;;1553:47517;;26495:13;;1553:47517;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;26202:155;26327:19;;;:::i;:::-;26202:155;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;35504:37:165;1553:47517;;;;35504:37;:::i;:::-;35593:32;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;35641:96;;;;;;1553:47517;;;;;;;;;;;;35641:96;;1553:47517;;;;;;;;35681:4;;35661:10;1553:47517;35641:96;;;:::i;:::-;;;;;;;;;1553:47517;-1:-1:-1;;1553:47517:165;;-1:-1:-1;;;35773:79:165;;35661:10;1553:47517;35773:79;;1553:47517;35681:4;1553:47517;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;35773:79;;;;;;;;;;;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;35968:70;1553:47517;;;;35661:10;;35968:70;;35911:238;;;;;1553:47517;;-1:-1:-1;;;35911:238:165;;-1:-1:-1;;;;;1553:47517:165;;;;35911:238;;1553:47517;;;;;;;;;;;;;;;;;;;;;;35911:238;;;;;;;;;35968:70;1553:47517;;;;;;;;35911:238;;;;;;:::i;:::-;1553:47517;;35911:238;;;;1553:47517;;;;;;;;;35911:238;1553:47517;;;35968:70;;;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;35773:79;;;;1553:47517;35773:79;1553:47517;35773:79;;;;;;;:::i;:::-;;;;;1553:47517;;;;;;;;;35641:96;;;;;:::i;:::-;1553:47517;;35641:96;;;;1553:47517;;;;;;;;;;;;;;16432:211;-1:-1:-1;;;;;;;;;;;1553:47517:165;16529:25;1553:47517;28103:37:170;28124:15;28103:37;;:::i;:::-;16470:38:165;1553:47517;16529:25;;1553:47517;;-1:-1:-1;;;;;1553:47517:165;;;;;16432:211;;:::i;:::-;1553:47517;;;;;;;;;;;;;;;;;;;;;28103:37:170;-1:-1:-1;;;;;;;;;;;1553:47517:165;28124:15:170;28103:37;;:::i;:::-;16046:41:165;1553:47517;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;12568:23;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;15475:25;-1:-1:-1;;;;;;;;;;;1553:47517:165;15475:25;1553:47517;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;12300:40;1553:47517;;;;;;;;;;;;;;;;;;;;;;;11710:32;-1:-1:-1;;;;;;;;;;;1553:47517:165;11710:32;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;28103:37:170;-1:-1:-1;;;;;;;;;;;1553:47517:165;28124:15:170;28103:37;;:::i;:::-;15785:41:165;1553:47517;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;:::i;:::-;-1:-1:-1;33444:28:170;33451:20;;;33444:28;:::i;:::-;33530:20;33523:28;33530:20;;;33523:28;:::i;:::-;10483:25:165;;;1553:47517;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47517:165;;;;;;;33568:241:170;;1553:47517:165;;33568:241:170;;1553:47517:165;;33568:241:170;;1553:47517:165;10872:33;;;1553:47517;10940:39;;;;1553:47517;11008:33;;;1553:47517;;;11085:48;;;1553:47517;11178:49;;;;1553:47517;;;;;;;;:::i;:::-;;;;;;:::i;:::-;33451:20:170;10566:19:165;;1553:47517;;;10872:33;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10621:27;;;1553:47517;;;;;;;;;;;;;;10526:712;;1553:47517;;;;;;;;;:::i;:::-;10677:20;;;1553:47517;-1:-1:-1;;;;;1553:47517:165;;;2288:3;;11178:49;1553:47517;;;;;;;;2288:3;33530:20:170;1553:47517:165;;;;;;;;2288:3;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10780:22;;;1553:47517;:::i;:::-;10526:712;1553:47517;10526:712;;1553:47517;;;10827:16;;1553:47517;;;:::i;:::-;10526:712;1553:47517;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;10526:712;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;17398:22;-1:-1:-1;;;;;;;;;;;1553:47517:165;17398:22;1553:47517;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47517:165;;;;18635:28;18567:13;18635:28;;18562:129;18582:23;;;;;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;18635:28;1553:47517;;;18607:3;18664:15;;;18635:28;18664:15;;;;:::i;:::-;;:::i;:::-;1553:47517;;;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;18626:54;;;;:::i;:::-;1553:47517;;18567:13;;1553:47517;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;14108:77;;28103:37:170;;28124:15;;28103:37;:::i;:::-;14108:77:165;1553:47517;;;9268:329:172;1553:47517:165;;;;;9268:329:172;;;;;;;;;;;;;;;;;;;;1553:47517:165;9268:329:172;;;;1553:47517:165;9268:329:172;1553:47517:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20138:19;-1:-1:-1;;;;;;;;;;;1553:47517:165;20138:19;1553:47517;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18907:36;-1:-1:-1;;;;;;;;;;;1553:47517:165;18907:36;1553:47517;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;18160:31;-1:-1:-1;;;;;;;;;;;1553:47517:165;18160:31;:43;1553:47517;;;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;23205:11:165;;:16;1553:47517;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;23301:19;;1553:47517;23301:38;1553:47517;;23394:19;;;1553:47517;;;;;;;;;;;;;;;;;;;;;23545:32;;;1553:47517;23607:48;;;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;23669:78;;;;;1553:47517;;-1:-1:-1;;;23669:78:165;;23689:10;1553:47517;23669:78;;1553:47517;23709:4;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23669:78;;;;;1553:47517;-1:-1:-1;;1553:47517:165;;-1:-1:-1;;;23783:61:165;;23689:10;1553:47517;23783:61;;1553:47517;23709:4;1553:47517;;;;;;;;;;;;;;;;;;;;;;23783:61;1553:47517;23669:78;;;;;:::i;:::-;1553:47517;;23669:78;;;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;21897:19;;;1553:47517;;;;;22004:26;;1553:47517;;;21994:37;;22050:25;;1553:47517;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;12840:35;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17167:25;-1:-1:-1;;;;;;;;;;;1553:47517:165;17167:25;1553:47517;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;5647:18:40;:43;;;1553:47517:165;;;;;;;;:::i;:::-;;;;:::i;:::-;;2446:3;1553:47517;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;;1553:47517:165;;;;5870:4:40;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;5647:43:40;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;5669:21:40;5647:43;;1553:47517:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;3319:20:37;1553:47517:165;;;966:10:34;1553:47517:165;;3319:20:37;1553:47517:165;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47517:165;;;;17867:19;17802:13;17867:19;;17797:120;17817:20;;;;;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;17839:3;17893:12;;;;;:::i;:::-;1553:47517;;;;;;;;;;;;17858:48;;;;:::i;:::-;1553:47517;;;;;;;;;17802:13;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;:::i;:::-;;;;972:64:36;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;11994:30;-1:-1:-1;;;;;;;;;;;1553:47517:165;11994:30;1553:47517;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;1553:47517:165;;;;;;;-1:-1:-1;;;;;1553:47517:165;3975:40:29;1553:47517:165;;3975:40:29;1553:47517:165;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;6429:44:30;;;;;1553:47517:165;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;6959:1:30;;-1:-1:-1;;;;;1553:47517:165;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1553:47517:165;;:::i;:::-;2224:17;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47517:165;;-1:-1:-1;;;;;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;-1:-1:-1;;;;;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;3676:10:40;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;9320:17;;:::i;:::-;2288:3;;6591:4:30;9298:19:165;;1553:47517;3652:7:40;2288:3:165;;;1553:47517;;2288:3;;;1553:47517;2288:3;1553:47517;2288:3;;;;;1553:47517;2288:3;;;;;;;;;;1553:47517;;;;;;;:::i;:::-;;;;9377:57;1553:47517;9347:27;3676:10:40;9347:27:165;;1553:47517;;;;2288:3;1553:47517;;;;;;;;28103:37:170;28124:15;28103:37;;:::i;:::-;9487:38:165;1553:47517;;;9444:33;;;1553:47517;;2203:1:170;;;;;;;;1553:47517:165;;;;;;;9587:32;;;1553:47517;;;;;;;;;;;9574:57;;;;;;;;9568:63;9574:57;;;;;1553:47517;9568:63;;:::i;:::-;2366:5;;;;;;;;;;;9641:48;;;1553:47517;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;1553:47517;9759:49;1553:47517;-1:-1:-1;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;6654:20:30;1553:47517:165;;;6907:1;1553:47517;;6654:20:30;1553:47517:165;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;;1553:47517;2288:3;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;;1553:47517;2288:3;9574:57;;;;1553:47517;9574:57;1553:47517;9574:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:47517;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;3676:10:40;1553:47517:165;;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;6907:1;1553:47517;;;;;;;;;;;;6907:1;1553:47517;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47517:165;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;6907:1;1553:47517;;;;;;;;;;;6907:1;1553:47517;;;;;:::i;:::-;;;;6425:105:30;-1:-1:-1;;;6496:23:30;;1553:47517:165;;6496:23:30;6429:44;6907:1:165;1553:47517;;-1:-1:-1;;;;;1553:47517:165;6448:25:30;;6429:44;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;1553:47517:165;;;;;4301:16:30;1553:47517:165;;4724:16:30;;:34;;;;1553:47517:165;;4788:16:30;:50;;;;1553:47517:165;4853:13:30;:30;;;;1553:47517:165;4849:91:30;;;6959:1;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;4977:67:30;;1553:47517:165;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:47517:165;;:::i;:::-;2224:17;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3676:10:40;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;6891:76:30;;:::i;:::-;;;:::i;:::-;4803:15:165;:19;2288:3;;4861:21;;2288:3;;4928:32;;;2288:3;;;5209:2;5173:32;;;;:::i;:::-;2288:3;5153:58;;2288:3;;;1553:47517;;;;;;;;;;;;;;;;;:::i;:::-;2288:3;1553:47517;;2288:3;;;;;;2303:62:29;;:::i;:::-;1553:47517:165;;1800:178:73;;;;;;;1553:47517:165;;;1800:178:73;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;48493:24;1553:47517;;;;;;;48493:24;5367:17;;:::i;:::-;2288:3;1553:47517;2288:3;;5345:19;;1553:47517;3652:7:40;2288:3:165;;;1553:47517;2288:3;;;;1553:47517;2288:3;;;;;;;;;;;;;;;;;;1553:47517;;;;;;:::i;:::-;2288:3;;;-1:-1:-1;;;;;1553:47517:165;;;5417:52;;;2288:3;;;1553:47517;;;5417:52;;;;2288:3;;;5394:20;;;1553:47517;;;;;;-1:-1:-1;;;;;;1553:47517:165;;;;;;;2288:3;;;1553:47517;;;;;;;;2288:3;;;1553:47517;;;;;;;;;;2203:1:170;5479:25:165;;;2203:1:170;1553:47517:165;;:::i;:::-;;2383:18:170;1553:47517:165;;;;;;:::i;:::-;1855:13:170;1553:47517:165;;23107:89:170;1553:47517:165;5667:22;;;1553:47517;;-1:-1:-1;;;;;;2203:1:170;;;;;1553:47517:165;;;;;;;;;:::i;:::-;;;;5754:65;;;1553:47517;;;5754:65;1553:47517;5735:16;;;1553:47517;2288:3;2203:1:170;;1553:47517:165;2203:1:170;;;1553:47517:165;5829:33;;;2203:1:170;;-1:-1:-1;;2203:1:170;1553:47517:165;;;2203:1:170;;;1553:47517:165;;-1:-1:-1;;;5933:37:165;;1553:47517;;;;;5933:37;;;;;;;;5927:43;5933:37;;;;;5927:43;;:::i;:::-;2366:5;;;;;;;;;;5980:48;;;1553:47517;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;2446:3;;6260:213;6098:49;;;;6290:37;6098:49;1553:47517;6098:49;;1553:47517;;;;;;;:::i;:::-;;;2446:3;;;1553:47517;;2446:3;;;1553:47517;;;;2446:3;:::i;:::-;4803:15;;1553:47517;;2446:3;;:::i;:::-;6290:37;;6260:213;:::i;:::-;5064:101:30;;1553:47517:165;;;5064:101:30;1553:47517:165;5140:14:30;1553:47517:165;-1:-1:-1;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;5140:14:30;1553:47517:165;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;1553:47517;;2288:3;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47517;2288:3;1553:47517;;2288:3;5933:37;1553:47517;;;;;;;;;2288:3;-1:-1:-1;;;2288:3:165;;1553:47517;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47517;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47517;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47517;2288:3;;1553:47517;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;3676:10:40;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:47517:165;;;;;;;;4977:67:30;-1:-1:-1;;;;;;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1553:47517: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:47517:165;;;;;;;;;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1553:47517:165;4815:4:60;4807:23;4803:145;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1553:47517:165;;4908:29:60;1553:47517:165;-1:-1:-1;1553:47517:165;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1553:47517:165;4392:4:60;4384:23;;;:120;;;;1553:47517:165;4367:251:60;;;2303:62:29;;:::i;:::-;1553:47517:165;;-1:-1:-1;;;5865:52:60;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;5865:52:60;;;;;;;;1553:47517:165;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1553:47517: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:47517:165;;-1:-1:-1;;;;;;1553:47517:165;;;;;2407:36:53;;;;1553:47517:165;;;;2458:15:53;:11;;4065:25:66;;1553:47517:165;4107:55:66;4065:25;;;;;;;1553:47517:165;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1553:47517:165;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1553:47517:165;;6159:70:53;-1:-1:-1;;;6199:19:53;;1553:47517:165;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1553:47517:165;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1553:47517:165;;;6026:34:60;;5865:52;;;;1553:47517:165;5865:52:60;;1553:47517:165;5865:52:60;;;;;;1553:47517:165;5865:52:60;;;:::i;:::-;;;1553:47517:165;;;;;5865:52:60;;;;1553:47517:165;-1:-1:-1;1553:47517:165;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1553:47517:165;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;4462:42:60;;;-1:-1:-1;4384:120:60;;;1553:47517:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;2971:9:37;2967:62;;1553:47517:165;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;3627:22:37;1553:47517:165;;;966:10:34;1553:47517:165;;3627:22:37;1553:47517:165;;2967:62:37;-1:-1:-1;;;3003:15:37;;1553:47517:165;3003:15:37;;1553:47517:165;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47517:165;20673:23;;1553:47517;;-1:-1:-1;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28103:37:170;-1:-1:-1;;;;;;;;;;;1553:47517:165;28124:15:170;28103:37;;:::i;:::-;1553:47517:165;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;29218:36:165;1553:47517;;;;29218:36;:::i;:::-;-1:-1:-1;;;;;;1553:47517:165;;;;29305:70;1553:47517;;;;29342:10;;29305:70;-1:-1:-1;;;;;;;;;;;1553:47517:165;12568:23;;1553:47517;-1:-1:-1;;;;;1553:47517:165;29265:134;;;;;1553:47517;;-1:-1:-1;;;29265:134:165;;-1:-1:-1;;;;;1553:47517:165;;;;29265:134;;1553:47517;;;;;;;;;;;;;;;;;;29265:134;1553:47517;;29265:134;;;;;;;;;1553:47517;;;;;;;;29305:70;;;1553:47517;;;;;;;;;;;;;;3980:23:40;;:::i;1553:47517:165:-;;;;;;;;;;;;;;11456:22;-1:-1:-1;;;;;;;;;;;1553:47517:165;11456:22;1553:47517;;;;;;;;;;;;;;;;;;;;;19500:51;-1:-1:-1;;;;;;;;;;;1553:47517:165;19500:51;1553:47517;;;;;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;2303:62:29;;:::i;:::-;1553:47517:165;;20991:51;-1:-1:-1;;;;;;;;;;;1553:47517:165;20991:51;1553:47517;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;31261:36:165;1553:47517;;;;31261:36;:::i;:::-;31349:32;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;31397:96;;;;;;1553:47517;;;;;;;;;;;;31397:96;;1553:47517;;;;;;;;31437:4;;31417:10;1553:47517;31397:96;;;:::i;:::-;;;;;;;;;1553:47517;-1:-1:-1;;1553:47517:165;;-1:-1:-1;;;31529:79:165;;31417:10;1553:47517;31529:79;;1553:47517;31437:4;1553:47517;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;31529:79;;;;;;;;;;;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;31724:70;1553:47517;;;;31417:10;;31724:70;;-1:-1:-1;;;;;;;;;;;1553:47517:165;31349:20;12568:23;1553:47517;-1:-1:-1;;;;;1553:47517:165;31667:236;;;;;1553:47517;;-1:-1:-1;;;31667:236:165;;-1:-1:-1;;;;;1553:47517:165;;;;31667:236;;1553:47517;;;;;;;;;;;;;;31667:236;1553:47517;;;31667:236;;;;;;;;;;1553:47517;;;;;;;;31724:70;;;;1553:47517;-1:-1:-1;;;1553:47517:165;;;;;31529:79;;;;1553:47517;31529:79;1553:47517;31529:79;;;;;;;:::i;:::-;;;;;1553:47517;;;;;;;;;31397:96;;;;;:::i;:::-;1553:47517;;31397:96;;;;1553:47517;;;;;;-1:-1:-1;;1553:47517:165;;;;;;:::i;:::-;;;:::i;:::-;1944:72:37;;;:::i;:::-;33329:37:165;1553:47517;;;;33329:37;:::i;:::-;-1:-1:-1;;;;;;1553:47517:165;;;;33417:70;1553:47517;;;;33454:10;;33417:70;;33377:136;;;;;1553:47517;;-1:-1:-1;;;33377:136:165;;-1:-1:-1;;;;;1553:47517:165;;;;33377:136;;1553:47517;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;33377:136;1553:47517;-1:-1:-1;33377:136:165;;;;;;;;1553:47517;33377:136;;;33417:70;1553:47517;;;;;;;33377:136;1553:47517;33377:136;;;:::i;:::-;1553:47517;33377:136;;;1553:47517;;;;;;;;;33417:70;;;;1553:47517;;;;;;-1:-1:-1;;1553:47517:165;;;;2303:62:29;;:::i;:::-;1553:47517:165;;21388:52;-1:-1:-1;;;;;;;;;;;1553:47517:165;21388:52;1553:47517;;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;19165:42;-1:-1:-1;;;;;;;;;;;1553:47517:165;19165:42;1553:47517;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;-1:-1:-1;;;;;1553:47517:165;;;;;;-1:-1:-1;;1553:47517:165;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;-1:-1:-1;;1553:47517:165;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47517:165;;;;:::o;2224:17::-;1553:47517;;;;;;;:::i;:::-;2224:17;1553:47517;;-1:-1:-1;;;1553:47517:165;2224:17;;;:::o;2288:3::-;;;;;;;;;;:::o;:::-;1553:47517;;;2288:3;;;;;;;;;;;;;;;:::o;:::-;1553:47517;;;2288:3;;;;;;;;2203:1:170;;;;;;;;;;1553:47517:165;;;;;;;2203:1:170;:::o;:::-;1553:47517:165;;2203:1:170;;;;;;;;:::o;2366:5:165:-;;;;;;;;;;;;;;;;:::o;2446:3::-;;;;;;;;;;;1553:47517;;;;:::i;:::-;2446:3;;;1553:47517;;;2446:3;;;1553:47517;2446:3;;;:::o;:::-;-1:-1:-1;;;;;2446:3:165;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:47517;;;;;;;:::i;:::-;2446:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:47517;;;;;:::i;:::-;2446:3;;;;;;;;1553:47517;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;14365:375::-;28103:37:170;-1:-1:-1;;;;;;;;;;;1553:47517:165;28124:15:170;28103:37;;:::i;:::-;14617:22:165;;;1553:47517;14569:22;;;;;;14722:11;;;;1553:47517;14365:375;:::o;14593:3::-;14640:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47517:165;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;14616:39;14612:90;;1553:47517;;14554:13;;14612:90;14675:12;;;;1553:47517;14675:12;:::o;1553:47517::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47517:165;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;:::o;2670:66::-;;;;;;;;;;:::o;1553:47517::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1553:47517:165;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1553:47517:165;;-1:-1:-1;;;;;;1553:47517:165;;;;;;;-1:-1:-1;;;;;1553:47517: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:47517:165;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517: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:47517:165;;-1:-1:-1;2763:40:29;2709:128:37;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;38843:934:165;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;39019:19;;;;1553:47517;39019:38;1553:47517;;;;;39112:19;;;1553:47517;;;;;;;;;;;;;;39150:24;39112:62;1553:47517;;3543:209:25;1553:47517:165;3543:209:25;1553:47517:165;3543:209:25;1553:47517:165;;3543:209:25;1553:47517:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1651:6:168;1052:614:22;1553:47517:165;1052:614:22;1888:66:168;4093:83:22;;1998:66:168;1553:47517:165;4093:83:22;;;2108:66:168;1553:47517:165;4093:83:22;;;2218:66:168;2210:6;4093:83:22;;;2328:66:168;2320:6;4093:83:22;;;2438:66:168;2430:6;4093:83:22;;;2548:66:168;2540:6;4093:83:22;;;2658:66:168;2650:6;4093:83:22;;;2768:66:168;2760:6;4093:83:22;;;2878:66:168;2870:6;4093:83:22;;;2988:66:168;2980:6;4093:83:22;;;3098:66:168;3090:6;4093:83:22;;;3208:66:168;3200:6;4093:83:22;;;3318:66:168;3310:6;4093:83:22;;;3428:66:168;3420:6;4093:83:22;;;3538:66:168;3530:6;4093:83:22;;;3648:66:168;3640:6;4093:83:22;;;3758:66:168;3750:6;4093:83:22;;;3868:66:168;3860:6;4093:83:22;;;3978:66:168;3970:6;4093:83:22;;;4088:66:168;4080:6;4093:83:22;;;4198:66:168;4190:6;4093:83:22;;;39572:4:165;4536:2:168;1553:47517:165;4437:66:168;;;;;4436:103;4416:6;4093:83:22;;;4592:66:168;4584:6;4093:83:22;;;39449:135:165;4670:150:168;;;;;;1553:47517:165;;;;;;;-1:-1:-1;1553:47517:165;39595:28;;;1553:47517;;;;-1:-1:-1;1553:47517:165;;39652:33;;;:35;1553:47517;;39652:35;:::i;:::-;1553:47517;;;;-1:-1:-1;;;;;1553:47517:165;;;;39703:32;;1553:47517;;39703:32;39746:24;38843:934;:::o;1553:47517::-;;;;;;;;;38843:934;;;;-1:-1:-1;;;;;;;;;;;1553:47517:165;39019:19;31292:4;39019:19;;1553:47517;39019:38;1553:47517;;;-1:-1:-1;1553:47517:165;39112:19;;;1553:47517;;;;-1:-1:-1;1553:47517:165;;;;;;;;;39150:24;39112:62;1553:47517;;3543:209:25;-1:-1:-1;3543:209:25;1553:47517:165;3543:209:25;1553:47517:165;-1:-1:-1;3543:209:25;1553:47517:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1545:4:169;1052:614:22;1553:47517:165;1052:614:22;2041:66:169;4093:83:22;;39511:4:165;1052:614:22;1553:47517:165;2187:66:169;2186:105;1553:47517:165;4093:83:22;;;2342:66:169;1553:47517:165;4093:83:22;;;-1:-1:-1;2420:150:169;;;;;;1553:47517:165;;;;;;;-1:-1:-1;1553:47517:165;39595:28;;;1553:47517;;;;-1:-1:-1;1553:47517:165;;39652:33;;;:35;1553:47517;;39652:35;:::i;23329:229:170:-;1553:47517:165;;:::i;:::-;;;23507:12:170;15374:24:83;15370:103;;1553:47517:165;837:15:87;14374:24:83;14370:103;;1553:47517:165;;;;;:::i;:::-;23477:1:170;1553:47517:165;;;23507:12:170;1553:47517:165;23445:106:170;;;1553:47517:165;;837:15:87;1553:47517:165;;23445:106:170;;1553:47517:165;23329:229:170;:::o;14370:103:83:-;15421:41;;;23477:1:170;14421:41:83;14452:2;14421:41;1553:47517:165;837:15:87;1553:47517:165;;;23477:1:170;14421:41:83;15370:103;15421:41;;;23477:1:170;15421:41:83;15452:2;15421:41;1553:47517:165;23507:12:170;1553:47517:165;;;23477:1:170;15421:41:83;1553:47517:165;;;;;;;;;;;:::o;:::-;;;;;;;;;;46525:1421;;;;2203:1:170;;47225:25:165;;;;2203:1:170;;;1145:66:27;;1837:24:26;;:71;;;;46525:1421:165;1553:47517;;;;;2203:1:170;1553:47517:165;;2203:1:170;1553:47517:165;;;;1705:1673:172;;;;;;;;;;;;;;;;;;;-1:-1:-1;1705:1673:172;;;;;;;47385:52:165;;;1553:47517;;-1:-1:-1;;;;;;1553:47517:165;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;-1:-1:-1;47548:3:165;47523:16;;;1553:47517;;47519:27;;;;;-1:-1:-1;1553:47517:165;;;47225:25;1553:47517;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;47621:15;;1553:47517;;;;;;;-1:-1:-1;;1553:47517:165;;;;;47504:13;;47519:27;;;;-1:-1:-1;47723:3:165;1553:47517;;47696:25;;;;;1553:47517;;-1:-1:-1;;;;;47763:17:165;1553:47517;47763:17;;:::i;:::-;2288:3;1553:47517;;;;;;;-1:-1:-1;1553:47517:165;;47794:15;;1553:47517;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;47681:13;;47696:25;;;47523:16;47848;;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;-1:-1:-1;;;1553:47517:165;;;;47225:25;1553:47517;;;;;;;;;;;47676:163;1553:47517;;;-1:-1:-1;1553:47517:165;47225:25;-1:-1:-1;1553:47517:165;-1:-1:-1;1553:47517:165;;;;;;47891:28;;;;;;1553:47517;46525:1421::o;1553:47517::-;2288:3;;-1:-1:-1;;;;;1553:47517:165;;;;;47225:25;1553:47517;;;;;;;;;;;;-1:-1:-1;1553:47517:165;;;;-1:-1:-1;1553:47517:165;;;;;;:::i;:::-;;;;1705:1673:172;;-1:-1:-1;1705:1673:172;;;;1553:47517:165;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30896:456:170;-1:-1:-1;;;;;30896:456:170;;1553:47517:165;;;;31205:24:170;;;;:::i;:::-;1553:47517:165;;;;;;31317:5:170;1553:47517:165;;31330:1:170;1553:47517:165;30896:456:170;:::o;22304:532::-;22429:12;-1:-1:-1;;2288:3:165;;;22304:532:170;;2288:3:165;;;;1553:47517;;22429:12:170;22469:22;;22429:12;;22469:50;1553:47517:165;22469:50:170;;22553:8;;;;;;22529:278;-1:-1:-1;1553:47517:165;;-1:-1:-1;;22304:532:170:o;22534:17::-;22592:12;;22622:11;;;;;-1:-1:-1;22444:1:170;;-1:-1:-1;;;22653:11:170:o;22618:119::-;22689:8;22685:52;;-1:-1:-1;;1553:47517:165;22534:17:170;;22685:52;22717:5;;22469:50;22498:21;22429:12;;22498:21;:::i;:::-;22469:50;;;1553:47517:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;:::o;39783:683::-;;39911:22;;;39944:1;39911:22;;;;:::i;:::-;:34;;;1553:47517;;39988:22;;;;:::i;:::-;:34;;;39984:177;;40215:22;;;:::i;:::-;1553:47517;;;;;;;;;;;;;;;;;;40305:23;;;;;:::i;:::-;2366:5;;;;1553:47517;2366:5;;;;;45606:2;2366:5;;;;;;;45652:36;;;;;;:::i;:::-;45698:18;1553:47517;45732:13;1553:47517;;45867:28;1553:47517;;;;;;45867:28;;45727:685;45767:3;45747:18;;;;;;1553:47517;;;;;;;;;;;;;;45896:18;;;:::i;:::-;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;45867:53;1553:47517;;;39911:22;45990:25;;-1:-1:-1;;;;;45990:25:165;;;:::i;:::-;1553:47517;45990:30;;:72;;;45767:3;45986:144;;45767:3;-1:-1:-1;;;;;46177:18:165;;;:::i;:::-;1553:47517;;-1:-1:-1;;;46169:76:165;;45606:2;46169:76;;;1553:47517;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;-1:-1:-1;;;;;1553:47517:165;;;:::i;:::-;;;;;;45606:2;1553:47517;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45606:2;1553:47517;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46169:76;;;;;;;;-1:-1:-1;;;;;46169:76:165;45606:2;46169:76;;1553:47517;;46169:76;;;;;;;;1553:47517;46169:76;;;1553:47517;4093:83:22;;45606:2:165;4093:83:22;39944:1:165;4093:83:22;;;;1553:47517:165;45767:3;1553:47517;45732:13;;;46169:76;;;45606:2;46169:76;;;;;;;;;1553:47517;46169:76;;;:::i;:::-;;;1553:47517;;;;;39944:1;46169:76;;;;;-1:-1:-1;46169:76:165;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;45606:2;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;:::i;:::-;;45606:2;1553:47517;;;;;;;-1:-1:-1;;1553:47517:165;;;;;;;;;;;;45606:2;1553:47517;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;39911:22;1553:47517;;;:::i;:::-;;;;;;;;;;39911:22;1553:47517;;;;;;;;;;;;;;;;;;45606:2;1553:47517;;;;;;;;39944:1;1553:47517;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45986:144;46090:25;;;;;:::i;:::-;45986:144;;;45990:72;46025:37;;1553:47517;46025:37;;;:::i;:::-;46024:38;45990:72;;45747:18;;;;;;;;;;45606:2;45747:18;;1083:131:25;40364:16:165;;1553:47517;;40345:36;45606:2;1553:47517;;;;;40345:36;1553:47517;3543:209:25;45606:2:165;3543:209:25;1553:47517:165;;3543:209:25;39783:683:165;:::o;39984:177::-;40130:20;;;40137:13;40130:20;:::o;1553:47517::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;41916:1705::-;42046:24;;;42081:1;42046:24;;;;:::i;:::-;:36;;;1553:47517;;42127:24;;;;:::i;:::-;:36;;;42123:179;;42358:24;;;;:::i;:::-;1553:47517;;;;;;;;;;;;;;;;;;42404:21;;;;;42428;42404;;;:::i;:::-;42428;;;1553:47517;42428:21;;;;:::i;:::-;1553:47517;;;42404:45;1553:47517;;;42507:21;;;:::i;:::-;1553:47517;42532:29;;;;1553:47517;42428:21;1553:47517;;;;42507:54;1553:47517;;42718:46;1553:47517;42742:21;42638:46;42662:21;;;;:::i;:::-;1553:47517;42638:46;;:::i;:::-;42742:21;;:::i;:::-;1553:47517;42718:46;;:::i;:::-;-1:-1:-1;1553:47517:165;;;42886:31;;;1553:47517;42955:32;;;;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;43054:19;;;;1553:47517;;;;42428:21;;1553:47517;42942:144;43023:62;42428:21;43054:19;;1553:47517;43054:19;:::i;:::-;:31;1553:47517;43023:62;;:::i;:::-;43054:19;1553:47517;;;;;;;;;42942:144;;;;;;1553:47517;;;;;42942:144;;;;;;;1553:47517;42942:144;;;41916:1705;1553:47517;;;;;43054:19;1553:47517;-1:-1:-1;;;43176:185:165;;-1:-1:-1;;;;;1553:47517:165;;;42942:144;43176:185;;1553:47517;;;;;;;;42428:21;43321:26;;;1553:47517;42942:144;1553:47517;;;;43176:185;1553:47517;-1:-1:-1;43176:185:165;;;;;;;;1553:47517;43176:185;;;41916:1705;43462:19;;;;;:::i;:::-;43483:21;;;;:::i;:::-;1553:47517;43054:19;1553:47517;;;;;43413:92;;43054:19;42942:144;43413:92;;1553:47517;;;;;;;;;;;;;;;;;;;;42428:21;1553:47517;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;42955:32;1553:47517;;;;;;;42404:21;42942:144;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;42428:21;1553:47517;;;;;;;;;;;43176:185;1553:47517;;;;43054:19;1553:47517;;;;;;;;:::i;:::-;;;;;;;;;;;43413:92;;;;;;;;;1553:47517;43413:92;;;1553:47517;43592:21;;;;:::i;:::-;43054:19;1553:47517;18043:70:170;42428:21:165;18043:70:170;;1553:47517:165;;;43054:19;1553:47517;;;2288:3;1553:47517;;;;;;42404:21;1553:47517;;;18043:70:170;;;;;;;:::i;:::-;1553:47517:165;18033:81:170;;41916:1705:165;:::o;43413:92::-;;;;42428:21;43413:92;;42428:21;43413:92;;;;;;1553:47517;43413:92;;;:::i;:::-;;;1553:47517;;;;;;43592:21;43413:92;;;;;-1:-1:-1;43413:92:165;;1553:47517;;;;;;;43054:19;1553:47517;42081:1;1553:47517;;;;;;;;;:::i;:::-;;;;42428:21;1553:47517;;;42428:21;1553:47517;;;;;;;;;;;;;;;;43176:185;;;;;42428:21;43176:185;;42428:21;43176:185;;;;;;1553:47517;43176:185;;;:::i;:::-;;;1553:47517;;;;;;;43462:19;43176:185;;;;;-1:-1:-1;43176:185:165;;1553:47517;;;;;;42942:144;1553:47517;;42942:144;;;;42428:21;42942:144;42428:21;42942:144;;;;;;;:::i;:::-;;;;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;:::o;43688:1657::-;;43821:27;;;43859:1;43821:27;;;;:::i;:::-;:39;;;1553:47517;;43908:27;;;;:::i;:::-;:39;;;43904:182;;44145:27;;;:::i;:::-;1553:47517;;;;;;;;;;;;;;;;;;44194:22;;;;;;;;:::i;:::-;:33;;;1553:47517;;;44361:29;;;1553:47517;;;;44343:15;:47;:15;;:47;:::i;:::-;44342:72;44394:16;;;1553:47517;44342:72;;;:::i;:::-;44433:20;;;;1553:47517;2670:66;43859:1;2670:66;;;;;;;44433:43;;1553:47517;;44567:43;;44535:75;44567:43;;:::i;:::-;44535:75;;:::i;:::-;44662:25;44647:40;44662:25;;;1553:47517;44647:40;;:::i;:::-;44343:15;44628:59;1553:47517;;44806:34;;;:::i;:::-;44343:15;;1553:47517;44858:28;;1553:47517;44858:46;1553:47517;;;44998:217;45098:45;;;;;2446:3;;45098:45;;;;:::i;:::-;45157:22;;;;;;:::i;:::-;1553:47517;;;2446:3;1553:47517;2446:3;;:::i;:::-;1553:47517;;2446:3;;:::i;:::-;1553:47517;;2446:3;;:::i;:::-;44998:217;;:::i;:::-;45231:47;1553:47517;45098:45;1553:47517;;;;45231:47;1553:47517;;;;;;;45098:45;1553:47517;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;45098:45;1553:47517;;;;44194:22;1553:47517;;;18437:30:170;2203:1;1553:47517:165;2203:1:170;;18487:32;;2203:1;1553:47517:165;45098:45;1553:47517;18403:206:170;;;1553:47517:165;18403:206:170;;1553:47517:165;;;45098:45;1553:47517;;;44194:22;1553:47517;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47517:165;;18403:206:170;;;;;;1553:47517:165;18403:206:170;;;:::i;1553:47517:165:-;;;-1:-1:-1;;;;;1553:47517:165;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;43859:1;1553:47517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24049:3813:170;;;;;;1553:47517:165;32047:29:170;;;1553:47517:165;;;;32079:22:170;24418:15;32079:22;;:::i;:::-;32047:77;32079:45;32104:16;;;1553:47517:165;32079:45:170;;;:::i;:::-;32047:77;;:::i;:::-;24448:15;;;;;;:82;;24049:3813;24444:676;;;24554:35;;;1553:47517:165;;24639:25:170;;;;:::i;:::-;:39;1553:47517:165;;25214:24:170;24444:676;;25214:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1553:47517:165;3226:200:80;25279:4:170;3226:200:80;;32047:29:170;3226:200:80;32104:16:170;3226:200:80;;1553:47517:165;3226:200:80;1553:47517:165;32047:29:170;1553:47517:165;;;;;25342:37:170;;;25403:23;;32047:19;25403:23;;1553:47517:165;;;;;;;2446:3;1553:47517;;:::i;:::-;2446:3;;;:::i;:::-;1553:47517;3226:200:80;1553:47517:165;;25534:23:170;1553:47517:165;;25724:240:170;1553:47517:165;26245:272:170;25724:240;;;3226:200:80;25724:240:170;;;;;;;1553:47517:165;32047:19:170;1553:47517:165;;26334:32:170;;1553:47517:165;26245:272:170;;:::i;1553:47517:165:-;;;;;;;;;;;;;;;;;;25338:2495:170;1553:47517:165;;;32047:19:170;26538:37;26534:1299;;25338:2495;;;;;1553:47517:165;24049:3813:170;:::o;26534:1299::-;26611:199;26648:15;26688:25;26648:15;;;;;1553:47517:165;26688:25:170;;1553:47517:165;;-1:-1:-1;;;;;1553:47517:165;;;;;26611:199:170;;:::i;:::-;26825:27;1553:47517:165;26872:13:170;27068:14;1553:47517:165;27068:14:170;;26867:929;26911:3;26887:22;;;;;;3927:8:77;3871:27;2446:3:165;1553:47517;;;;;;;;:::i;2446:3::-;3871:27:77;;:::i;3927:8::-;-1:-1:-1;;;;;1553:47517:165;;;;;;;;;;;;;;;;27064:718:170;;26911:3;;32047:19;26911:3;26872:13;1553:47517:165;26872:13:170;;27064:718;-1:-1:-1;;;;;2780:163:73;1553:47517:165;2780:163:73;;;2113:66:165;1553:47517;2780:163:73;;;;3327:69:76;;27427:50:170;;;27505:8;32047:19;27505:8;;;27423:223;3556:68:76;32047:19:170;27672:17;3556:68:76;;;27672:17:170;:::i;:::-;:30;;;;27668:96;;27064:718;;;27668:96;27730:11;;;;;;;32047:19;27730:11;:::o;26887:22::-;;;;;;;;1553:47517:165;27810:12:170;:::o;1553:47517:165:-;;;;;;;;;;;;;;;;;;24444:676:170;24418:15;;;;;;24913:21;;1553:47517:165;;25214:24:170;24971:69;;;24444:676;;;;24971:69;25010:15;;24971:69;;;1553:47517:165;;;;;;;;;24448:82:170;24498:32;24485:45;24498:32;;;1553:47517:165;24485:45:170;;:::i;:::-;24418:15;24467:63;24448:82;;4016:191:40;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1553:47517:165;;4107:92:40;;;;1553:47517:165;1959:95:40;1553:47517:165;;;1959:95:40;;1553:47517:165;1959:95:40;;;1553:47517:165;4170:13:40;1959:95;;;1553:47517:165;4193:4:40;1959:95;;;1553:47517:165;1959:95:40;4107:92;;;;;;:::i;28812:312:170:-;;28935:37;28812:312;28935:37;;:::i;:::-;;;;28995;;28988:44;:::o;28931:187::-;29070:37;;29063:44;:::o;7082:141:30:-;1553:47517:165;-1:-1:-1;;;;;;;;;;;1553:47517: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;32471:467:170;1553:47517:165;;:::i;:::-;-1:-1:-1;32775:51:170;;;1553:47517:165;32893:27:170;;;1553:47517:165;;;;;;;;32846:15:170;;-1:-1:-1;;;;;1553:47517:165;;;;:::i;:::-;;;;:::i;:::-;;;32634:297:170;;;2288:3:165;32846:15:170;1553:47517:165;:::i;:::-;;32634:297:170;;1553:47517:165;32634:297:170;;;1553:47517:165;32471:467:170;:::o;5203:1551:77:-;;;6283:66;6270:79;;6266:164;;1553:47517:165;;;;;;-1:-1:-1;1553:47517:165;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1553:47517: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:47517:165;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1553:47517:165;7462:38:77;;1553:47517:165;;7523:23:77;;;7375:20;7523:23;1553:47517:165;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1553:47517: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:47517:165;;;7375:20:77;7763:32;1553:47517:165;;-1:-1:-1;;;;;1553:47517:165;;;;;;;:::o;:::-;;;;;;;;;;:::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;31537:179:170:-;31689:16;31651:34;31650:59;31537:179;1553:47517:165;31656:29:170;;;1553:47517:165;;;;31651:34:170;;:::i;:::-;31689:16;;1553:47517:165;31650:59:170;;:::i;28353:322::-;28473:50;28507:15;28473:50;;:::i;:::-;28507:15;;;28546:37;;28539:44;:::o;28469:200::-;28621:37;;28614: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:47517:165;425:3:20;1553:47517:165;;;4003:1:27;2933;2929:5;;1553:47517:165;425:3:20;4492:84:22;;;4093:83;2670:66:165;4093:83:22;;;4003:1:27;1553:47517: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:47517:165;-1:-1:-1;;;;;1553:47517:165;;;6084:3:20;1553:47517:165;;6062:44:20;1145:66:27;;;1860::20;1553:47517:165;1860:66:20;;1553:47517:165;6037:2:20;1553:47517:165;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1553:47517:165;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1553:47517:165;4093:83:22;;1553:47517:165;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1553:47517:165;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1553:47517:165;1640:140:24;3543:209:25;1553:47517:165;3543:209:25;648:2:20;3543:209:25;1553:47517:165;;;;;6037:2:20;1553:47517:165;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1553:47517:165;8070:12:20;:::o;6928:687:40:-;1553:47517:165;;:::i;:::-;;;;7100:22:40;;;;1553:47517:165;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1553:47517:165;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1553:47517:165;;:::i;:::-;;;;8017:25:40;;;;1553:47517:165;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1553:47517:165;8411:18:40;;;;8449:20;:::o;29531:863:170:-;;29777:54;29699;;;1553:47517:165;29777:54:170;;1553:47517:165;29905:10:170;;;1553:47517:165;;29976:9:170;;;;30008;;;;;30040;;;30141:14;;;;;29531:863;1553:47517:165;;;30357:30:170;;;30350:37;;29531:863;:::o;30357:30::-;30372:14;;29531:863;-1:-1:-1;29531:863:170:o;1553:47517:165:-;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;30141:14:170;;;;;1553:47517:165;;;;-1:-1:-1;1553:47517:165;;-1:-1:-1;1553:47517:165;2129:778:77;1553:47517: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;4437:582:66:-;;4609:8;;-1:-1:-1;1553:47517:165;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1553:47517: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:47517:165;;;;4933:24:66;1553:47517:165;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":10996,"length":32},{"start":11143,"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,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],((uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"f2019bfe","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\":\"head\",\"type\":\"bytes32\"}],\"name\":\"AnnouncesCommitted\",\"type\":\"event\"},{\"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\":[],\"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\":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\"},{\"internalType\":\"bytes32\",\"name\":\"valueClaimsMerkleRoot\",\"type\":\"bytes32\"},{\"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\":\"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\":[{\"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\":{\"AnnouncesCommitted(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.\"}},\"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.\"}},\"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.\"},\"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,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],((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. `AnnouncesCommitted` 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 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 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\":{\"AnnouncesCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"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.\"},\"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\":\"0x6c65c742fdc33e8ccc6b8557a3664798ff66461520ff86bd23176d0eb2c651e6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://ce3fd92cb789de14dd326ea038b8a0c9c8a2b23d8ba4a64b89f24bccea5623bf\",\"dweb:/ipfs/QmRZcbFDW6kzBUECKWoXXv4Hkdhbgs6YdSPHfBH4u6Znjp\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53\",\"dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ\"]},\"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\":\"0x0ec027c603c1617e7e76cdb19ae716d3797f90efb2cc253649b98775776d8280\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://85bc845aa757e2609af57d7b1cefdbc43f3d89189230e9d11b07c49d7106b5be\",\"dweb:/ipfs/QmQDySUQWR2UYFKp1xvL7QbZcpNn4kCtPyPJkLBFeTTBYA\"]},\"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\":\"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e\",\"dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE\"]},\"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":"head","type":"bytes32","indexed":false}],"type":"event","name":"AnnouncesCommitted","anonymous":false},{"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":[],"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":"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":"bytes32","name":"valueClaimsMerkleRoot","type":"bytes32"},{"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":"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":"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,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],((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. `AnnouncesCommitted` 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 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 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":"0x6c65c742fdc33e8ccc6b8557a3664798ff66461520ff86bd23176d0eb2c651e6","urls":["bzz-raw://ce3fd92cb789de14dd326ea038b8a0c9c8a2b23d8ba4a64b89f24bccea5623bf","dweb:/ipfs/QmRZcbFDW6kzBUECKWoXXv4Hkdhbgs6YdSPHfBH4u6Znjp"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x2e9483984329954d79717ed6c2e3f0415e02044712fd27a45413f806b2f1cd3a","urls":["bzz-raw://3ecab75eb3c994e195b8f2771ac8cea89eeb149c38d276e5f303cbf0d1d6af53","dweb:/ipfs/Qmaub2qyp3DotrjcJLSNX4aqVZNeLAVF4x3dz9LSZ71utQ"],"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":"0x0ec027c603c1617e7e76cdb19ae716d3797f90efb2cc253649b98775776d8280","urls":["bzz-raw://85bc845aa757e2609af57d7b1cefdbc43f3d89189230e9d11b07c49d7106b5be","dweb:/ipfs/QmQDySUQWR2UYFKp1xvL7QbZcpNn4kCtPyPJkLBFeTTBYA"],"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":"0xaa9ce387c1fa58d955e79480d842747229602cb2e41e8f66b76a525ccb322dc7","urls":["bzz-raw://2a508a38068564068c0982ba7a3d0977b03a8b3fbd5884f5c8ce4cc435eba94e","dweb:/ipfs/QmbytbwV1RQqp7F8gjED2cn2g3BHWGQwgb8or88W6FfDgE"],"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":82414,"exportedSymbols":{"Clones":[83099],"ClonesSmall":[83183],"ECDSA":[51038],"EIP712Upgradeable":[44416],"FROST":[40965],"Gear":[84435],"Hashes":[41483],"IMiddleware":[74131],"IMirror":[74440],"IRouter":[75030],"IWrappedVara":[75046],"Memory":[41257],"NoncesUpgradeable":[43698],"OwnableUpgradeable":[42322],"PausableUpgradeable":[43858],"ReentrancyGuardTransientUpgradeable":[43943],"Router":[82413],"SSTORE2":[84891],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:48997:165","nodes":[{"id":79513,"nodeType":"PragmaDirective","src":"74:24:165","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":79515,"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":82414,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":79514,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79517,"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":82414,"sourceUnit":43699,"symbolAliases":[{"foreign":{"id":79516,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43698,"src":"210:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79519,"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":82414,"sourceUnit":43859,"symbolAliases":[{"foreign":{"id":79518,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43858,"src":"309:19:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79521,"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":82414,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":79520,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"417:35:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79523,"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":82414,"sourceUnit":44417,"symbolAliases":[{"foreign":{"id":79522,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44416,"src":"553:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79525,"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":82414,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":79524,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"665:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79527,"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":82414,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":79526,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"754:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79529,"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":82414,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":79528,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"835:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79531,"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":82414,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":79530,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"910:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79533,"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":82414,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":79532,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"986:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79535,"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":82414,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":79534,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"1039:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79537,"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":82414,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":79536,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"1100:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79539,"nodeType":"ImportDirective","src":"1166:48:165","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":82414,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":79538,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"1174:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79541,"nodeType":"ImportDirective","src":"1215:40:165","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":82414,"sourceUnit":74441,"symbolAliases":[{"foreign":{"id":79540,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74440,"src":"1223:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79543,"nodeType":"ImportDirective","src":"1256:40:165","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":82414,"sourceUnit":75031,"symbolAliases":[{"foreign":{"id":79542,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75030,"src":"1264:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79545,"nodeType":"ImportDirective","src":"1297:50:165","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":82414,"sourceUnit":75047,"symbolAliases":[{"foreign":{"id":79544,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"1305:12:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79547,"nodeType":"ImportDirective","src":"1348:48:165","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":82414,"sourceUnit":83100,"symbolAliases":[{"foreign":{"id":79546,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83099,"src":"1356:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79549,"nodeType":"ImportDirective","src":"1397:58:165","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":82414,"sourceUnit":83184,"symbolAliases":[{"foreign":{"id":79548,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83183,"src":"1405:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79551,"nodeType":"ImportDirective","src":"1456:44:165","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82414,"sourceUnit":84436,"symbolAliases":[{"foreign":{"id":79550,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"1464:4:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79553,"nodeType":"ImportDirective","src":"1501:50:165","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":82414,"sourceUnit":84892,"symbolAliases":[{"foreign":{"id":79552,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84891,"src":"1509:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82413,"nodeType":"ContractDefinition","src":"1553:47517:165","nodes":[{"id":79570,"nodeType":"VariableDeclaration","src":"1849:106:165","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1874:12:165","scope":82413,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79568,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1849:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":79569,"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":79573,"nodeType":"VariableDeclaration","src":"2068:111:165","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2093:17:165","scope":82413,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2068:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":79572,"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":79576,"nodeType":"VariableDeclaration","src":"2186:55:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2210:11:165","scope":82413,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79574,"name":"string","nodeType":"ElementaryTypeName","src":"2186:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":79575,"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":79579,"nodeType":"VariableDeclaration","src":"2247:44:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2271:14:165","scope":82413,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79577,"name":"string","nodeType":"ElementaryTypeName","src":"2247:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":79578,"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":79582,"nodeType":"VariableDeclaration","src":"2298:73:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2323:40:165","scope":82413,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79580,"name":"uint256","nodeType":"ElementaryTypeName","src":"2298:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":79581,"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":79585,"nodeType":"VariableDeclaration","src":"2377:72:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2402:41:165","scope":82413,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79583,"name":"uint256","nodeType":"ElementaryTypeName","src":"2377:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":79584,"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":79588,"nodeType":"VariableDeclaration","src":"2592:144:165","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2617:42:165","scope":82413,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":79587,"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":79596,"nodeType":"FunctionDefinition","src":"2811:53:165","nodes":[],"body":{"id":79595,"nodeType":"Block","src":"2825:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79592,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"2835:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79593,"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":79594,"nodeType":"ExpressionStatement","src":"2835:22:165"}]},"documentation":{"id":79589,"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":79590,"nodeType":"ParameterList","parameters":[],"src":"2822:2:165"},"returnParameters":{"id":79591,"nodeType":"ParameterList","parameters":[],"src":"2825:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79800,"nodeType":"FunctionDefinition","src":"4030:2502:165","nodes":[],"body":{"id":79799,"nodeType":"Block","src":"4445:2087:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":79625,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79599,"src":"4470:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79624,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4455:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4455:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79627,"nodeType":"ExpressionStatement","src":"4455:22:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79628,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43762,"src":"4487:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4487:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79630,"nodeType":"ExpressionStatement","src":"4487:17:165"},{"expression":{"arguments":[{"id":79632,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79576,"src":"4528:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79633,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79579,"src":"4541: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":79631,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"4514:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4514:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79635,"nodeType":"ExpressionStatement","src":"4514:42:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79636,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"4566:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4566:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79638,"nodeType":"ExpressionStatement","src":"4566:15:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79639,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"4591:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4591:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79641,"nodeType":"ExpressionStatement","src":"4591:33:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79643,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4803:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4809:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"4803:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4821:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4803:19:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79647,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74584,"src":"4824:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4824:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4795:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4795:48:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79650,"nodeType":"ExpressionStatement","src":"4795:48:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79652,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79609,"src":"4861:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4881:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4861:21:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79655,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74587,"src":"4884:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4884:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79651,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4853:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4853:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79658,"nodeType":"ExpressionStatement","src":"4853:57:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79660,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79607,"src":"4928:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79661,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79609,"src":"4943:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4928:32:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79663,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74590,"src":"4962:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4962:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79659,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4920:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79666,"nodeType":"ExpressionStatement","src":"4920:64:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79668,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79611,"src":"5153:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79669,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79607,"src":"5173:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":79670,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79609,"src":"5188:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5173:32:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79672,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5172:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":79673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5209:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5172:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5153:58:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79676,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74595,"src":"5213:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5213:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79667,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5145:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5145:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79679,"nodeType":"ExpressionStatement","src":"5145:92:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":79681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5264: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":79680,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82353,"src":"5248:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5248:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79683,"nodeType":"ExpressionStatement","src":"5248:42:165"},{"assignments":[79686],"declarations":[{"constant":false,"id":79686,"mutability":"mutable","name":"router","nameLocation":"5316:6:165","nodeType":"VariableDeclaration","scope":79799,"src":"5300:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79685,"nodeType":"UserDefinedTypeName","pathNode":{"id":79684,"name":"Storage","nameLocations":["5300:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"5300:7:165"},"referencedDeclaration":74535,"src":"5300:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79689,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79687,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"5325:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5325:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5300:34:165"},{"expression":{"id":79696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79690,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"5345:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5352:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"5345:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79693,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"5367:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5372:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83887,"src":"5367:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83425_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5367:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5345:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79697,"nodeType":"ExpressionStatement","src":"5345:39:165"},{"expression":{"id":79707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79698,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"5394:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5401:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"5394:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79703,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79601,"src":"5434:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79704,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79603,"src":"5443:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79705,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79605,"src":"5457: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":79701,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"5417:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5422:11:165","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":83301,"src":"5417:16:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$83301_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":79706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5417:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5394:75:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79708,"nodeType":"ExpressionStatement","src":"5394:75:165"},{"expression":{"id":79716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79709,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"5479:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5486:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"5479:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5505:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83521,"src":"5479:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79714,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"5526:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5531:30:165","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":83222,"src":"5526:35:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5479:82:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79717,"nodeType":"ExpressionStatement","src":"5479:82:165"},{"expression":{"id":79725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79718,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"5571:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5578:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"5571:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5597:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83523,"src":"5571:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79723,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"5620:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5625:32:165","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"5620:37:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5571:86:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79726,"nodeType":"ExpressionStatement","src":"5571:86:165"},{"expression":{"id":79733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79727,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"5667:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5674:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74526,"src":"5667:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79730,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"5692:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5697:26:165","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":83864,"src":"5692:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$83417_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":79732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5692:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"5667:58:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":79734,"nodeType":"ExpressionStatement","src":"5667:58:165"},{"expression":{"id":79744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79735,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"5735:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5742:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"5735:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79740,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79607,"src":"5769:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79741,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79609,"src":"5783:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79742,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79611,"src":"5802: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":79738,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"5754:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5759:9:165","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":83518,"src":"5754:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$83518_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":79743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5754:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"5735:84:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"id":79745,"nodeType":"ExpressionStatement","src":"5735:84:165"},{"expression":{"id":79756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79746,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"5829:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5836:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"5829:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5849:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83467,"src":"5829:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":79753,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79619,"src":"5872:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5884:6:165","memberName":"length","nodeType":"MemberAccess","src":"5872:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5865:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79751,"name":"uint16","nodeType":"ElementaryTypeName","src":"5865:6:165","typeDescriptions":{}}},"id":79755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5865:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5829:62:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79757,"nodeType":"ExpressionStatement","src":"5829:62:165"},{"assignments":[79759],"declarations":[{"constant":false,"id":79759,"mutability":"mutable","name":"decimalsFactor","nameLocation":"5910:14:165","nodeType":"VariableDeclaration","scope":79799,"src":"5902:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79758,"name":"uint256","nodeType":"ElementaryTypeName","src":"5902:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79767,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5927: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":79762,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79603,"src":"5946:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79761,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"5933:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75046_$","typeString":"type(contract IWrappedVara)"}},"id":79763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5933:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":79764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5960:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"5933:35:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5933:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5927:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5902:68:165"},{"expression":{"id":79776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79768,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"5980:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5987:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"5980:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6000:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83470,"src":"5980:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79773,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79582,"src":"6031:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79774,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"6074:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6031:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5980:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79777,"nodeType":"ExpressionStatement","src":"5980:108:165"},{"expression":{"id":79786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79778,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"6098:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6105:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"6098:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6118:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83473,"src":"6098:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79783,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79585,"src":"6150:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79784,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"6194:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6150:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6098:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79787,"nodeType":"ExpressionStatement","src":"6098:110:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":79789,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"6290:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6297:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"6290:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6316:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83526,"src":"6290:37:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"}},{"id":79792,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79614,"src":"6341:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":79793,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79616,"src":"6375:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79794,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79619,"src":"6423:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":79795,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6448:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6454:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"6448:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83278_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_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":79788,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82300,"src":"6260:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$83278_storage_ptr_$_t_struct$_AggregatedPublicKey_$83257_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":79797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:213:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79798,"nodeType":"ExpressionStatement","src":"6260:213:165"}]},"documentation":{"id":79597,"nodeType":"StructuredDocumentation","src":"2870:1155: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 aggregated public key of the initial validators. Will be used in future.\n @param _verifiableSecretSharingCommitment The 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":79622,"kind":"modifierInvocation","modifierName":{"id":79621,"name":"initializer","nameLocations":["4433:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"4433:11:165"},"nodeType":"ModifierInvocation","src":"4433:11:165"}],"name":"initialize","nameLocation":"4039:10:165","parameters":{"id":79620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79599,"mutability":"mutable","name":"_owner","nameLocation":"4067:6:165","nodeType":"VariableDeclaration","scope":79800,"src":"4059:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79598,"name":"address","nodeType":"ElementaryTypeName","src":"4059:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79601,"mutability":"mutable","name":"_mirror","nameLocation":"4091:7:165","nodeType":"VariableDeclaration","scope":79800,"src":"4083:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79600,"name":"address","nodeType":"ElementaryTypeName","src":"4083:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79603,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4116:12:165","nodeType":"VariableDeclaration","scope":79800,"src":"4108:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79602,"name":"address","nodeType":"ElementaryTypeName","src":"4108:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79605,"mutability":"mutable","name":"_middleware","nameLocation":"4146:11:165","nodeType":"VariableDeclaration","scope":79800,"src":"4138:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79604,"name":"address","nodeType":"ElementaryTypeName","src":"4138:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79607,"mutability":"mutable","name":"_eraDuration","nameLocation":"4175:12:165","nodeType":"VariableDeclaration","scope":79800,"src":"4167:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79606,"name":"uint256","nodeType":"ElementaryTypeName","src":"4167:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79609,"mutability":"mutable","name":"_electionDuration","nameLocation":"4205:17:165","nodeType":"VariableDeclaration","scope":79800,"src":"4197:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79608,"name":"uint256","nodeType":"ElementaryTypeName","src":"4197:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79611,"mutability":"mutable","name":"_validationDelay","nameLocation":"4240:16:165","nodeType":"VariableDeclaration","scope":79800,"src":"4232:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79610,"name":"uint256","nodeType":"ElementaryTypeName","src":"4232:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79614,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4300:20:165","nodeType":"VariableDeclaration","scope":79800,"src":"4266:54:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79613,"nodeType":"UserDefinedTypeName","pathNode":{"id":79612,"name":"Gear.AggregatedPublicKey","nameLocations":["4266:4:165","4271:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83257,"src":"4266:24:165"},"referencedDeclaration":83257,"src":"4266:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":79616,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4345:34:165","nodeType":"VariableDeclaration","scope":79800,"src":"4330:49:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79615,"name":"bytes","nodeType":"ElementaryTypeName","src":"4330:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":79619,"mutability":"mutable","name":"_validators","nameLocation":"4408:11:165","nodeType":"VariableDeclaration","scope":79800,"src":"4389:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79617,"name":"address","nodeType":"ElementaryTypeName","src":"4389:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79618,"nodeType":"ArrayTypeName","src":"4389:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4049:376:165"},"returnParameters":{"id":79623,"nodeType":"ParameterList","parameters":[],"src":"4445:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79895,"nodeType":"FunctionDefinition","src":"6852:3024:165","nodes":[],"body":{"id":79894,"nodeType":"Block","src":"6910:2966:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79810,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"9183:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9183:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79809,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"9168:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9168:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79813,"nodeType":"ExpressionStatement","src":"9168:23:165"},{"expression":{"arguments":[{"id":79815,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79576,"src":"9215:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79816,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79579,"src":"9228: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":79814,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"9201:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9201:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79818,"nodeType":"ExpressionStatement","src":"9201:42:165"},{"assignments":[79821],"declarations":[{"constant":false,"id":79821,"mutability":"mutable","name":"router","nameLocation":"9270:6:165","nodeType":"VariableDeclaration","scope":79894,"src":"9254:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79820,"nodeType":"UserDefinedTypeName","pathNode":{"id":79819,"name":"Storage","nameLocations":["9254:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"9254:7:165"},"referencedDeclaration":74535,"src":"9254:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79824,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79822,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"9279:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9279:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9254:34:165"},{"expression":{"id":79831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79825,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79821,"src":"9298:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9305:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"9298:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79828,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"9320:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9325:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83887,"src":"9320:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83425_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9320:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9298:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79832,"nodeType":"ExpressionStatement","src":"9298:39:165"},{"expression":{"id":79844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79833,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79821,"src":"9347:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9354:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74514,"src":"9347:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":79840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9416: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":79839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9408:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9408:7:165","typeDescriptions":{}}},"id":79841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9408:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":79842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9431: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":79836,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"9377:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9382:18:165","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":83411,"src":"9377:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$83411_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":79843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9402:4:165","9420:9:165"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"9377:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"9347:87:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79845,"nodeType":"ExpressionStatement","src":"9347:87:165"},{"expression":{"id":79860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79846,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79821,"src":"9444:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9451:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"9444:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9464:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83467,"src":"9444:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":79855,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79821,"src":"9513:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79853,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"9487:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9492:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":84154,"src":"9487:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9487:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83274,"src":"9487:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9526:6:165","memberName":"length","nodeType":"MemberAccess","src":"9487:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9480:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79851,"name":"uint16","nodeType":"ElementaryTypeName","src":"9480:6:165","typeDescriptions":{}}},"id":79859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9480:53:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9444:89:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79861,"nodeType":"ExpressionStatement","src":"9444:89:165"},{"assignments":[79863],"declarations":[{"constant":false,"id":79863,"mutability":"mutable","name":"decimalsFactor","nameLocation":"9551:14:165","nodeType":"VariableDeclaration","scope":79894,"src":"9543:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79862,"name":"uint256","nodeType":"ElementaryTypeName","src":"9543:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79873,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9568: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":79866,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79821,"src":"9587:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9594:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"9587:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9608:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83297,"src":"9587:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79865,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"9574:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75046_$","typeString":"type(contract IWrappedVara)"}},"id":79869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9574:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":79870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9621:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"9574:55:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9574:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9568:63:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9543:88:165"},{"expression":{"id":79882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79874,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79821,"src":"9641:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9648:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"9641:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9661:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83470,"src":"9641:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79879,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79582,"src":"9692:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79880,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79863,"src":"9735:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9692:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9641:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79883,"nodeType":"ExpressionStatement","src":"9641:108:165"},{"expression":{"id":79892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79884,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79821,"src":"9759:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9766:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"9759:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9779:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83473,"src":"9759:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79889,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79585,"src":"9811:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79890,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79863,"src":"9855:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9811:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9759:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79893,"nodeType":"ExpressionStatement","src":"9759:110:165"}]},"documentation":{"id":79801,"nodeType":"StructuredDocumentation","src":"6538: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":79804,"kind":"modifierInvocation","modifierName":{"id":79803,"name":"onlyOwner","nameLocations":["6883:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6883:9:165"},"nodeType":"ModifierInvocation","src":"6883:9:165"},{"arguments":[{"hexValue":"35","id":79806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6907:1:165","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":79807,"kind":"modifierInvocation","modifierName":{"id":79805,"name":"reinitializer","nameLocations":["6893:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"6893:13:165"},"nodeType":"ModifierInvocation","src":"6893:16:165"}],"name":"reinitialize","nameLocation":"6861:12:165","parameters":{"id":79802,"nodeType":"ParameterList","parameters":[],"src":"6873:2:165"},"returnParameters":{"id":79808,"nodeType":"ParameterList","parameters":[],"src":"6910:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79905,"nodeType":"FunctionDefinition","src":"10041:84:165","nodes":[],"body":{"id":79904,"nodeType":"Block","src":"10123:2:165","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":79896,"nodeType":"StructuredDocumentation","src":"9882: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":79902,"kind":"modifierInvocation","modifierName":{"id":79901,"name":"onlyOwner","nameLocations":["10113:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"10113:9:165"},"nodeType":"ModifierInvocation","src":"10113:9:165"}],"name":"_authorizeUpgrade","nameLocation":"10050:17:165","overrides":{"id":79900,"nodeType":"OverrideSpecifier","overrides":[],"src":"10104:8:165"},"parameters":{"id":79899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79898,"mutability":"mutable","name":"newImplementation","nameLocation":"10076:17:165","nodeType":"VariableDeclaration","scope":79905,"src":"10068:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79897,"name":"address","nodeType":"ElementaryTypeName","src":"10068:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10067:27:165"},"returnParameters":{"id":79903,"nodeType":"ParameterList","parameters":[],"src":"10123:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79959,"nodeType":"FunctionDefinition","src":"10297:948:165","nodes":[],"body":{"id":79958,"nodeType":"Block","src":"10361:884:165","nodes":[],"statements":[{"assignments":[79914],"declarations":[{"constant":false,"id":79914,"mutability":"mutable","name":"router","nameLocation":"10387:6:165","nodeType":"VariableDeclaration","scope":79958,"src":"10371:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79913,"nodeType":"UserDefinedTypeName","pathNode":{"id":79912,"name":"Storage","nameLocations":["10371:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"10371:7:165"},"referencedDeclaration":74535,"src":"10371:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79917,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79915,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"10396:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10396:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10371:34:165"},{"assignments":[79922],"declarations":[{"constant":false,"id":79922,"mutability":"mutable","name":"validationSettings","nameLocation":"10450:18:165","nodeType":"VariableDeclaration","scope":79958,"src":"10415:53:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83542_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":79921,"nodeType":"UserDefinedTypeName","pathNode":{"id":79920,"name":"Gear.ValidationSettingsView","nameLocations":["10415:4:165","10420:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":83542,"src":"10415:27:165"},"referencedDeclaration":83542,"src":"10415:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83542_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":79928,"initialValue":{"arguments":[{"expression":{"id":79925,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"10483:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10490:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"10483:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":79923,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"10471:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":79924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10476:6:165","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":84434,"src":"10471:11:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$83530_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$83542_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":79927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10471:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83542_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"10415:94:165"},{"expression":{"arguments":[{"expression":{"id":79930,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"10566:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10573:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"10566:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":79932,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"10621:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10628:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74514,"src":"10621:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":79934,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"10677:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10684:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"10677:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":79936,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79922,"src":"10731:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83542_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":79937,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"10780:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10787:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74526,"src":"10780:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":79939,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"10827:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10834:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"10827:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":79941,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"10872:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10879:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"10872:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10892:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83461,"src":"10872:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79944,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"10940:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10947:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"10940:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10960:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83464,"src":"10940:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79947,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"11008:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11015:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"11008:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11028:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83467,"src":"11008:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":79950,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"11085:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11092:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"11085:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11105:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83470,"src":"11085:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79953,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79914,"src":"11178:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11185:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"11178:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11198:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83473,"src":"11178:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$83542_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$83417_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$83518_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":79929,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74502,"src":"10526:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$74502_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":79956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10552:12:165","10599:20:165","10662:13:165","10711:18:165","10763:15:165","10816:9:165","10857:13:165","10919:19:165","10993:13:165","11055:28:165","11147:29:165"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee"],"nodeType":"FunctionCall","src":"10526:712:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74502_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":79911,"id":79957,"nodeType":"Return","src":"10519:719:165"}]},"baseFunctions":[74688],"documentation":{"id":79906,"nodeType":"StructuredDocumentation","src":"10150: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":"10306:11:165","parameters":{"id":79907,"nodeType":"ParameterList","parameters":[],"src":"10317:2:165"},"returnParameters":{"id":79911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79959,"src":"10341:18:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74502_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":79909,"nodeType":"UserDefinedTypeName","pathNode":{"id":79908,"name":"StorageView","nameLocations":["10341:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":74502,"src":"10341:11:165"},"referencedDeclaration":74502,"src":"10341:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74502_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"10340:20:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79971,"nodeType":"FunctionDefinition","src":"11381:109:165","nodes":[],"body":{"id":79970,"nodeType":"Block","src":"11439:51:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79965,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"11456:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11456:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11466:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"11456:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11479:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83420,"src":"11456:27:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79964,"id":79969,"nodeType":"Return","src":"11449:34:165"}]},"baseFunctions":[74694],"documentation":{"id":79960,"nodeType":"StructuredDocumentation","src":"11251: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":"11390:16:165","parameters":{"id":79961,"nodeType":"ParameterList","parameters":[],"src":"11406:2:165"},"returnParameters":{"id":79964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79971,"src":"11430:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11430:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11429:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79983,"nodeType":"FunctionDefinition","src":"11636:113:165","nodes":[],"body":{"id":79982,"nodeType":"Block","src":"11693:56:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79977,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"11710:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11710:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11720:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"11710:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11733:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83424,"src":"11710:32:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79976,"id":79981,"nodeType":"Return","src":"11703:39:165"}]},"baseFunctions":[74700],"documentation":{"id":79972,"nodeType":"StructuredDocumentation","src":"11496: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":"11645:16:165","parameters":{"id":79973,"nodeType":"ParameterList","parameters":[],"src":"11661:2:165"},"returnParameters":{"id":79976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79975,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79983,"src":"11685:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79974,"name":"uint48","nodeType":"ElementaryTypeName","src":"11685:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11684:8:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79995,"nodeType":"FunctionDefinition","src":"11911:125:165","nodes":[],"body":{"id":79994,"nodeType":"Block","src":"11977:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79989,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"11994:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11994:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12004:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74514,"src":"11994:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12025:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83408,"src":"11994:35:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79988,"id":79993,"nodeType":"Return","src":"11987:42:165"}]},"baseFunctions":[74706],"documentation":{"id":79984,"nodeType":"StructuredDocumentation","src":"11755: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":"11920:24:165","parameters":{"id":79985,"nodeType":"ParameterList","parameters":[],"src":"11944:2:165"},"returnParameters":{"id":79988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79995,"src":"11968:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11968:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11967:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80007,"nodeType":"FunctionDefinition","src":"12213:134:165","nodes":[],"body":{"id":80006,"nodeType":"Block","src":"12283:64:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80001,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"12300:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12300:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12310:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74514,"src":"12300:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":80004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12331:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83410,"src":"12300:40:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":80000,"id":80005,"nodeType":"Return","src":"12293:47:165"}]},"baseFunctions":[74712],"documentation":{"id":79996,"nodeType":"StructuredDocumentation","src":"12042: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":"12222:29:165","parameters":{"id":79997,"nodeType":"ParameterList","parameters":[],"src":"12251:2:165"},"returnParameters":{"id":80000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80007,"src":"12275:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79998,"name":"uint48","nodeType":"ElementaryTypeName","src":"12275:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12274:8:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80019,"nodeType":"FunctionDefinition","src":"12499:106:165","nodes":[],"body":{"id":80018,"nodeType":"Block","src":"12551:54:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80013,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"12568:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12578:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"12568:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12592:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":83294,"src":"12568:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80012,"id":80017,"nodeType":"Return","src":"12561:37:165"}]},"baseFunctions":[74718],"documentation":{"id":80008,"nodeType":"StructuredDocumentation","src":"12353: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":"12508:10:165","parameters":{"id":80009,"nodeType":"ParameterList","parameters":[],"src":"12518:2:165"},"returnParameters":{"id":80012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80019,"src":"12542:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80010,"name":"address","nodeType":"ElementaryTypeName","src":"12542:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12541:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80031,"nodeType":"FunctionDefinition","src":"12770:112:165","nodes":[],"body":{"id":80030,"nodeType":"Block","src":"12823:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80025,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"12840:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_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":"12840:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12850:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"12840:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12864:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83297,"src":"12840:35:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80024,"id":80029,"nodeType":"Return","src":"12833:42:165"}]},"baseFunctions":[74724],"documentation":{"id":80020,"nodeType":"StructuredDocumentation","src":"12611: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":"12779:11:165","parameters":{"id":80021,"nodeType":"ParameterList","parameters":[],"src":"12790:2:165"},"returnParameters":{"id":80024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80031,"src":"12814:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80022,"name":"address","nodeType":"ElementaryTypeName","src":"12814:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12813:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80043,"nodeType":"FunctionDefinition","src":"13042:110:165","nodes":[],"body":{"id":80042,"nodeType":"Block","src":"13094:58:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80037,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"13111:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13111:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13121:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"13111:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13135:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":83300,"src":"13111:34:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80036,"id":80041,"nodeType":"Return","src":"13104:41:165"}]},"baseFunctions":[74730],"documentation":{"id":80032,"nodeType":"StructuredDocumentation","src":"12888: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":"13051:10:165","parameters":{"id":80033,"nodeType":"ParameterList","parameters":[],"src":"13061:2:165"},"returnParameters":{"id":80036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80043,"src":"13085:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80034,"name":"address","nodeType":"ElementaryTypeName","src":"13085:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13084:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80058,"nodeType":"FunctionDefinition","src":"13345:175:165","nodes":[],"body":{"id":80057,"nodeType":"Block","src":"13440:80:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80052,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"13483:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13483:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80050,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"13457:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13462:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":84154,"src":"13457:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13457:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13494:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"13457:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":80049,"id":80056,"nodeType":"Return","src":"13450:63:165"}]},"baseFunctions":[74737],"documentation":{"id":80044,"nodeType":"StructuredDocumentation","src":"13158: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":"13354:29:165","parameters":{"id":80045,"nodeType":"ParameterList","parameters":[],"src":"13383:2:165"},"returnParameters":{"id":80049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80058,"src":"13407:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":80047,"nodeType":"UserDefinedTypeName","pathNode":{"id":80046,"name":"Gear.AggregatedPublicKey","nameLocations":["13407:4:165","13412:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83257,"src":"13407:24:165"},"referencedDeclaration":83257,"src":"13407:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"13406:33:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80075,"nodeType":"FunctionDefinition","src":"13986:207:165","nodes":[],"body":{"id":80074,"nodeType":"Block","src":"14078:115:165","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80068,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"14134:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14134:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80066,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"14108:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14113:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":84154,"src":"14108:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14108:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14145:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":83265,"src":"14108:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":80064,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84891,"src":"14095:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84891_$","typeString":"type(library SSTORE2)"}},"id":80065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14103:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":84864,"src":"14095:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":80072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14095:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":80063,"id":80073,"nodeType":"Return","src":"14088:98:165"}]},"baseFunctions":[74743],"documentation":{"id":80059,"nodeType":"StructuredDocumentation","src":"13526: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":"13995:43:165","parameters":{"id":80060,"nodeType":"ParameterList","parameters":[],"src":"14038:2:165"},"returnParameters":{"id":80063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80075,"src":"14064:12:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":80061,"name":"bytes","nodeType":"ElementaryTypeName","src":"14064:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14063:14:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80122,"nodeType":"FunctionDefinition","src":"14365:375:165","nodes":[],"body":{"id":80121,"nodeType":"Block","src":"14447:293:165","nodes":[],"statements":[{"assignments":[80088],"declarations":[{"constant":false,"id":80088,"mutability":"mutable","name":"_currentValidators","nameLocation":"14481:18:165","nodeType":"VariableDeclaration","scope":80121,"src":"14457:42:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80087,"nodeType":"UserDefinedTypeName","pathNode":{"id":80086,"name":"Gear.Validators","nameLocations":["14457:4:165","14462:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"14457:15:165"},"referencedDeclaration":83278,"src":"14457:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":80094,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80091,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"14528:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_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":"14528:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80089,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"14502:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14507:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":84154,"src":"14502:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$returns$_t_struct$_Validators_$83278_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":"14502:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14457:81:165"},{"body":{"id":80117,"nodeType":"Block","src":"14598:114:165","statements":[{"condition":{"id":80112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14616:39:165","subExpression":{"baseExpression":{"expression":{"id":80106,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80088,"src":"14617:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14636:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83270,"src":"14617:22:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80111,"indexExpression":{"baseExpression":{"id":80108,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80079,"src":"14640:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80110,"indexExpression":{"id":80109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80096,"src":"14652:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14640:14:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14617:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80116,"nodeType":"IfStatement","src":"14612:90:165","trueBody":{"id":80115,"nodeType":"Block","src":"14657:45:165","statements":[{"expression":{"hexValue":"66616c7365","id":80113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14682:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80083,"id":80114,"nodeType":"Return","src":"14675:12:165"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80099,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80096,"src":"14569:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80100,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80079,"src":"14573:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14585:6:165","memberName":"length","nodeType":"MemberAccess","src":"14573:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14569:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80118,"initializationExpression":{"assignments":[80096],"declarations":[{"constant":false,"id":80096,"mutability":"mutable","name":"i","nameLocation":"14562:1:165","nodeType":"VariableDeclaration","scope":80118,"src":"14554:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80095,"name":"uint256","nodeType":"ElementaryTypeName","src":"14554:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80098,"initialValue":{"hexValue":"30","id":80097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14566:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14554:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14593:3:165","subExpression":{"id":80103,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80096,"src":"14593:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80105,"nodeType":"ExpressionStatement","src":"14593:3:165"},"nodeType":"ForStatement","src":"14549:163:165"},{"expression":{"hexValue":"74727565","id":80119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14729:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80083,"id":80120,"nodeType":"Return","src":"14722:11:165"}]},"baseFunctions":[74752],"documentation":{"id":80076,"nodeType":"StructuredDocumentation","src":"14199: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":"14374:13:165","parameters":{"id":80080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80079,"mutability":"mutable","name":"_validators","nameLocation":"14407:11:165","nodeType":"VariableDeclaration","scope":80122,"src":"14388:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80077,"name":"address","nodeType":"ElementaryTypeName","src":"14388:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80078,"nodeType":"ArrayTypeName","src":"14388:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14387:32:165"},"returnParameters":{"id":80083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80122,"src":"14441:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80081,"name":"bool","nodeType":"ElementaryTypeName","src":"14441:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14440:6:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80140,"nodeType":"FunctionDefinition","src":"14902:144:165","nodes":[],"body":{"id":80139,"nodeType":"Block","src":"14970:76:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80132,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"15013:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15013:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80130,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"14987:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14992:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":84154,"src":"14987:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14987:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15024:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83270,"src":"14987:40:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80137,"indexExpression":{"id":80136,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80125,"src":"15028:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14987:52:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80129,"id":80138,"nodeType":"Return","src":"14980:59:165"}]},"baseFunctions":[74760],"documentation":{"id":80123,"nodeType":"StructuredDocumentation","src":"14746: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":"14911:11:165","parameters":{"id":80126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80125,"mutability":"mutable","name":"_validator","nameLocation":"14931:10:165","nodeType":"VariableDeclaration","scope":80140,"src":"14923:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80124,"name":"address","nodeType":"ElementaryTypeName","src":"14923:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14922:20:165"},"returnParameters":{"id":80129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80140,"src":"14964:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80127,"name":"bool","nodeType":"ElementaryTypeName","src":"14964:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14963:6:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80165,"nodeType":"FunctionDefinition","src":"15290:285:165","nodes":[],"body":{"id":80164,"nodeType":"Block","src":"15405:170:165","nodes":[],"statements":[{"assignments":[80152],"declarations":[{"constant":false,"id":80152,"mutability":"mutable","name":"router","nameLocation":"15439:6:165","nodeType":"VariableDeclaration","scope":80164,"src":"15415:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80151,"nodeType":"UserDefinedTypeName","pathNode":{"id":80150,"name":"IRouter.Storage","nameLocations":["15415:7:165","15423:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"15415:15:165"},"referencedDeclaration":74535,"src":"15415:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80155,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80153,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"15448:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15448:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15415:42:165"},{"expression":{"components":[{"expression":{"expression":{"id":80156,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80152,"src":"15475:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15482:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"15475:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15501:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83521,"src":"15475:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80159,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80152,"src":"15521:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15528:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"15521:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15547:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83523,"src":"15521:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":80162,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15474:94:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":80147,"id":80163,"nodeType":"Return","src":"15467:101:165"}]},"baseFunctions":[74768],"documentation":{"id":80141,"nodeType":"StructuredDocumentation","src":"15052: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":"15299:24:165","parameters":{"id":80142,"nodeType":"ParameterList","parameters":[],"src":"15323:2:165"},"returnParameters":{"id":80147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80144,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15355:18:165","nodeType":"VariableDeclaration","scope":80165,"src":"15347:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80143,"name":"uint128","nodeType":"ElementaryTypeName","src":"15347:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80146,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15383:20:165","nodeType":"VariableDeclaration","scope":80165,"src":"15375:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80145,"name":"uint128","nodeType":"ElementaryTypeName","src":"15375:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"15346:58:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80180,"nodeType":"FunctionDefinition","src":"15707:126:165","nodes":[],"body":{"id":80179,"nodeType":"Block","src":"15768:65:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80174,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"15811:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15811:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80172,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"15785:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15790:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":84154,"src":"15785:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15785:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15822:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83274,"src":"15785:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":80171,"id":80178,"nodeType":"Return","src":"15778:48:165"}]},"baseFunctions":[74775],"documentation":{"id":80166,"nodeType":"StructuredDocumentation","src":"15581: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":"15716:10:165","parameters":{"id":80167,"nodeType":"ParameterList","parameters":[],"src":"15726:2:165"},"returnParameters":{"id":80171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80180,"src":"15750:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80168,"name":"address","nodeType":"ElementaryTypeName","src":"15750:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80169,"nodeType":"ArrayTypeName","src":"15750:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15749:18:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80195,"nodeType":"FunctionDefinition","src":"15972:129:165","nodes":[],"body":{"id":80194,"nodeType":"Block","src":"16029:72:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80188,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"16072:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16072:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80186,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"16046:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16051:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":84154,"src":"16046:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16046:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16083:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83274,"src":"16046:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16088:6:165","memberName":"length","nodeType":"MemberAccess","src":"16046:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80185,"id":80193,"nodeType":"Return","src":"16039:55:165"}]},"baseFunctions":[74781],"documentation":{"id":80181,"nodeType":"StructuredDocumentation","src":"15839: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":"15981:15:165","parameters":{"id":80182,"nodeType":"ParameterList","parameters":[],"src":"15996:2:165"},"returnParameters":{"id":80185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80195,"src":"16020:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80183,"name":"uint256","nodeType":"ElementaryTypeName","src":"16020:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16019:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80226,"nodeType":"FunctionDefinition","src":"16302:348:165","nodes":[],"body":{"id":80225,"nodeType":"Block","src":"16363:287:165","nodes":[],"statements":[{"assignments":[80205],"declarations":[{"constant":false,"id":80205,"mutability":"mutable","name":"router","nameLocation":"16397:6:165","nodeType":"VariableDeclaration","scope":80225,"src":"16373:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80204,"nodeType":"UserDefinedTypeName","pathNode":{"id":80203,"name":"IRouter.Storage","nameLocations":["16373:7:165","16381:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"16373:15:165"},"referencedDeclaration":74535,"src":"16373:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80208,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80206,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"16406:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16406:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16373:42:165"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":80213,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80205,"src":"16496:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80211,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"16470:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16475:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":84154,"src":"16470:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16470:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16504:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83274,"src":"16470:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16509:6:165","memberName":"length","nodeType":"MemberAccess","src":"16470:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80217,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80205,"src":"16529:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16536:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"16529:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16555:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83521,"src":"16529:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80220,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80205,"src":"16587:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16594:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74522,"src":"16587:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83530_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83523,"src":"16587: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":80209,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"16432:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16437:19:165","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":84322,"src":"16432: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":80223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16432:211:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80200,"id":80224,"nodeType":"Return","src":"16425:218:165"}]},"baseFunctions":[74787],"documentation":{"id":80196,"nodeType":"StructuredDocumentation","src":"16107: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":"16311:19:165","parameters":{"id":80197,"nodeType":"ParameterList","parameters":[],"src":"16330:2:165"},"returnParameters":{"id":80200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80199,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80226,"src":"16354:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80198,"name":"uint256","nodeType":"ElementaryTypeName","src":"16354:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16353:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80240,"nodeType":"FunctionDefinition","src":"16822:122:165","nodes":[],"body":{"id":80239,"nodeType":"Block","src":"16906:38:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":80235,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"16923:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$82413_$","typeString":"type(contract super Router)"}},"id":80236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16929:6:165","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43784,"src":"16923:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":80237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16923:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80234,"id":80238,"nodeType":"Return","src":"16916:21:165"}]},"baseFunctions":[43784,74793],"documentation":{"id":80227,"nodeType":"StructuredDocumentation","src":"16656: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":"16831:6:165","overrides":{"id":80231,"nodeType":"OverrideSpecifier","overrides":[{"id":80229,"name":"IRouter","nameLocations":["16861:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":75030,"src":"16861:7:165"},{"id":80230,"name":"PausableUpgradeable","nameLocations":["16870:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"16870:19:165"}],"src":"16852:38:165"},"parameters":{"id":80228,"nodeType":"ParameterList","parameters":[],"src":"16837:2:165"},"returnParameters":{"id":80234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80240,"src":"16900:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80232,"name":"bool","nodeType":"ElementaryTypeName","src":"16900:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16899:6:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80252,"nodeType":"FunctionDefinition","src":"17069:130:165","nodes":[],"body":{"id":80251,"nodeType":"Block","src":"17150:49:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80247,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"17167:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17167:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17177:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74526,"src":"17167:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":80246,"id":80250,"nodeType":"Return","src":"17160:32:165"}]},"baseFunctions":[74800],"documentation":{"id":80241,"nodeType":"StructuredDocumentation","src":"16950:114:165","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17078:15:165","parameters":{"id":80242,"nodeType":"ParameterList","parameters":[],"src":"17093:2:165"},"returnParameters":{"id":80246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80252,"src":"17117:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":80244,"nodeType":"UserDefinedTypeName","pathNode":{"id":80243,"name":"Gear.ComputationSettings","nameLocations":["17117:4:165","17122:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83417,"src":"17117:24:165"},"referencedDeclaration":83417,"src":"17117:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83417_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17116:33:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80269,"nodeType":"FunctionDefinition","src":"17308:134:165","nodes":[],"body":{"id":80268,"nodeType":"Block","src":"17381:61:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80261,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"17398:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17398:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17408:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"17398:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17421:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"17398:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80266,"indexExpression":{"id":80265,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80255,"src":"17427:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17398:37:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"functionReturnParameters":80260,"id":80267,"nodeType":"Return","src":"17391:44:165"}]},"baseFunctions":[74809],"documentation":{"id":80253,"nodeType":"StructuredDocumentation","src":"17205: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":"17317:9:165","parameters":{"id":80256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80255,"mutability":"mutable","name":"_codeId","nameLocation":"17335:7:165","nodeType":"VariableDeclaration","scope":80269,"src":"17327:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17327:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17326:17:165"},"returnParameters":{"id":80260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80269,"src":"17365:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"},"typeName":{"id":80258,"nodeType":"UserDefinedTypeName","pathNode":{"id":80257,"name":"Gear.CodeState","nameLocations":["17365:4:165","17370:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83405,"src":"17365:14:165"},"referencedDeclaration":83405,"src":"17365:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"17364:16:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80328,"nodeType":"FunctionDefinition","src":"17566:378:165","nodes":[],"body":{"id":80327,"nodeType":"Block","src":"17663:281:165","nodes":[],"statements":[{"assignments":[80282],"declarations":[{"constant":false,"id":80282,"mutability":"mutable","name":"router","nameLocation":"17689:6:165","nodeType":"VariableDeclaration","scope":80327,"src":"17673:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80281,"nodeType":"UserDefinedTypeName","pathNode":{"id":80280,"name":"Storage","nameLocations":["17673:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"17673:7:165"},"referencedDeclaration":74535,"src":"17673:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80285,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80283,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"17698:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17698:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17673:34:165"},{"assignments":[80291],"declarations":[{"constant":false,"id":80291,"mutability":"mutable","name":"res","nameLocation":"17742:3:165","nodeType":"VariableDeclaration","scope":80327,"src":"17718:27:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83405_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80289,"nodeType":"UserDefinedTypeName","pathNode":{"id":80288,"name":"Gear.CodeState","nameLocations":["17718:4:165","17723:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83405,"src":"17718:14:165"},"referencedDeclaration":83405,"src":"17718:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"id":80290,"nodeType":"ArrayTypeName","src":"17718:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83405_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":80299,"initialValue":{"arguments":[{"expression":{"id":80296,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80273,"src":"17769:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17779:6:165","memberName":"length","nodeType":"MemberAccess","src":"17769:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17748:20:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$83405_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":80293,"nodeType":"UserDefinedTypeName","pathNode":{"id":80292,"name":"Gear.CodeState","nameLocations":["17752:4:165","17757:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83405,"src":"17752:14:165"},"referencedDeclaration":83405,"src":"17752:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"id":80294,"nodeType":"ArrayTypeName","src":"17752:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83405_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":80298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17748:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83405_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17718:68:165"},{"body":{"id":80323,"nodeType":"Block","src":"17844:73:165","statements":[{"expression":{"id":80321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80311,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80291,"src":"17858:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83405_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":80313,"indexExpression":{"id":80312,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80301,"src":"17862:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17858:6:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80314,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80282,"src":"17867:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17874:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"17867:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17887:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"17867:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80320,"indexExpression":{"baseExpression":{"id":80317,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80273,"src":"17893:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80319,"indexExpression":{"id":80318,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80301,"src":"17903:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17893:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17867:39:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"src":"17858:48:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"id":80322,"nodeType":"ExpressionStatement","src":"17858:48:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80304,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80301,"src":"17817:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80305,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80273,"src":"17821:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17831:6:165","memberName":"length","nodeType":"MemberAccess","src":"17821:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17817:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80324,"initializationExpression":{"assignments":[80301],"declarations":[{"constant":false,"id":80301,"mutability":"mutable","name":"i","nameLocation":"17810:1:165","nodeType":"VariableDeclaration","scope":80324,"src":"17802:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80300,"name":"uint256","nodeType":"ElementaryTypeName","src":"17802:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80303,"initialValue":{"hexValue":"30","id":80302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17814:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17802:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17839:3:165","subExpression":{"id":80308,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80301,"src":"17839:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80310,"nodeType":"ExpressionStatement","src":"17839:3:165"},"nodeType":"ForStatement","src":"17797:120:165"},{"expression":{"id":80325,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80291,"src":"17934:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83405_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":80279,"id":80326,"nodeType":"Return","src":"17927:10:165"}]},"baseFunctions":[74820],"documentation":{"id":80270,"nodeType":"StructuredDocumentation","src":"17448: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":"17575:11:165","parameters":{"id":80274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80273,"mutability":"mutable","name":"_codesIds","nameLocation":"17606:9:165","nodeType":"VariableDeclaration","scope":80328,"src":"17587:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17587:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80272,"nodeType":"ArrayTypeName","src":"17587:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"17586:30:165"},"returnParameters":{"id":80279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80328,"src":"17638:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83405_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80276,"nodeType":"UserDefinedTypeName","pathNode":{"id":80275,"name":"Gear.CodeState","nameLocations":["17638:4:165","17643:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83405,"src":"17638:14:165"},"referencedDeclaration":83405,"src":"17638:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"id":80277,"nodeType":"ArrayTypeName","src":"17638:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83405_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"17637:25:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80344,"nodeType":"FunctionDefinition","src":"18070:140:165","nodes":[],"body":{"id":80343,"nodeType":"Block","src":"18143:67:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80336,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"18160:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18160:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18170:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"18160:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18183:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83458,"src":"18160:31:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80341,"indexExpression":{"id":80340,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80331,"src":"18192:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18160:43:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80335,"id":80342,"nodeType":"Return","src":"18153:50:165"}]},"baseFunctions":[74828],"documentation":{"id":80329,"nodeType":"StructuredDocumentation","src":"17950: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":"18079:13:165","parameters":{"id":80332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80331,"mutability":"mutable","name":"_programId","nameLocation":"18101:10:165","nodeType":"VariableDeclaration","scope":80344,"src":"18093:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80330,"name":"address","nodeType":"ElementaryTypeName","src":"18093:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18092:20:165"},"returnParameters":{"id":80335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80344,"src":"18134:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18134:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18133:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80400,"nodeType":"FunctionDefinition","src":"18342:376:165","nodes":[],"body":{"id":80399,"nodeType":"Block","src":"18439:279:165","nodes":[],"statements":[{"assignments":[80356],"declarations":[{"constant":false,"id":80356,"mutability":"mutable","name":"router","nameLocation":"18465:6:165","nodeType":"VariableDeclaration","scope":80399,"src":"18449:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80355,"nodeType":"UserDefinedTypeName","pathNode":{"id":80354,"name":"Storage","nameLocations":["18449:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"18449:7:165"},"referencedDeclaration":74535,"src":"18449:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80359,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80357,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"18474:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18474:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18449:34:165"},{"assignments":[80364],"declarations":[{"constant":false,"id":80364,"mutability":"mutable","name":"res","nameLocation":"18511:3:165","nodeType":"VariableDeclaration","scope":80399,"src":"18494:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18494:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80363,"nodeType":"ArrayTypeName","src":"18494:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":80371,"initialValue":{"arguments":[{"expression":{"id":80368,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80348,"src":"18531:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18544:6:165","memberName":"length","nodeType":"MemberAccess","src":"18531:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18517: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":80365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18521:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80366,"nodeType":"ArrayTypeName","src":"18521:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":80370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18517:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18494:57:165"},{"body":{"id":80395,"nodeType":"Block","src":"18612:79:165","statements":[{"expression":{"id":80393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80383,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80364,"src":"18626:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":80385,"indexExpression":{"id":80384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80373,"src":"18630:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18626:6:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80386,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80356,"src":"18635:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18642:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"18635:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18655:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83458,"src":"18635:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80392,"indexExpression":{"baseExpression":{"id":80389,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80348,"src":"18664:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80391,"indexExpression":{"id":80390,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80373,"src":"18677:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18664:15:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18635:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18626:54:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80394,"nodeType":"ExpressionStatement","src":"18626:54:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80373,"src":"18582:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80377,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80348,"src":"18586:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18599:6:165","memberName":"length","nodeType":"MemberAccess","src":"18586:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18582:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80396,"initializationExpression":{"assignments":[80373],"declarations":[{"constant":false,"id":80373,"mutability":"mutable","name":"i","nameLocation":"18575:1:165","nodeType":"VariableDeclaration","scope":80396,"src":"18567:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80372,"name":"uint256","nodeType":"ElementaryTypeName","src":"18567:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80375,"initialValue":{"hexValue":"30","id":80374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18579:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18567:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18607:3:165","subExpression":{"id":80380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80373,"src":"18607:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80382,"nodeType":"ExpressionStatement","src":"18607:3:165"},"nodeType":"ForStatement","src":"18562:129:165"},{"expression":{"id":80397,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80364,"src":"18708:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":80353,"id":80398,"nodeType":"Return","src":"18701:10:165"}]},"baseFunctions":[74838],"documentation":{"id":80345,"nodeType":"StructuredDocumentation","src":"18216: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":"18351:15:165","parameters":{"id":80349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80348,"mutability":"mutable","name":"_programsIds","nameLocation":"18386:12:165","nodeType":"VariableDeclaration","scope":80400,"src":"18367:31:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80346,"name":"address","nodeType":"ElementaryTypeName","src":"18367:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80347,"nodeType":"ArrayTypeName","src":"18367:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18366:33:165"},"returnParameters":{"id":80353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80400,"src":"18421:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18421:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80351,"nodeType":"ArrayTypeName","src":"18421:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18420:18:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80412,"nodeType":"FunctionDefinition","src":"18835:115:165","nodes":[],"body":{"id":80411,"nodeType":"Block","src":"18890:60:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80406,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"18907:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18907:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18917:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"18907:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18930:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83461,"src":"18907:36:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80405,"id":80410,"nodeType":"Return","src":"18900:43:165"}]},"baseFunctions":[74844],"documentation":{"id":80401,"nodeType":"StructuredDocumentation","src":"18724: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":"18844:13:165","parameters":{"id":80402,"nodeType":"ParameterList","parameters":[],"src":"18857:2:165"},"returnParameters":{"id":80405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80412,"src":"18881:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80403,"name":"uint256","nodeType":"ElementaryTypeName","src":"18881:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18880:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80424,"nodeType":"FunctionDefinition","src":"19087:127:165","nodes":[],"body":{"id":80423,"nodeType":"Block","src":"19148:66:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80418,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"19165:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19165:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19175:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"19165:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19188:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83464,"src":"19165:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80417,"id":80422,"nodeType":"Return","src":"19158:49:165"}]},"baseFunctions":[74850],"documentation":{"id":80413,"nodeType":"StructuredDocumentation","src":"18956: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":"19096:19:165","parameters":{"id":80414,"nodeType":"ParameterList","parameters":[],"src":"19115:2:165"},"returnParameters":{"id":80417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80424,"src":"19139:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80415,"name":"uint256","nodeType":"ElementaryTypeName","src":"19139:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19138:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80436,"nodeType":"FunctionDefinition","src":"19411:147:165","nodes":[],"body":{"id":80435,"nodeType":"Block","src":"19483:75:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80430,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"19500:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19500:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19510:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"19500:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19523:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83470,"src":"19500:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80429,"id":80434,"nodeType":"Return","src":"19493:58:165"}]},"baseFunctions":[74856],"documentation":{"id":80425,"nodeType":"StructuredDocumentation","src":"19220: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":"19420:28:165","parameters":{"id":80426,"nodeType":"ParameterList","parameters":[],"src":"19448:2:165"},"returnParameters":{"id":80429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80436,"src":"19474:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80427,"name":"uint256","nodeType":"ElementaryTypeName","src":"19474:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19473:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80448,"nodeType":"FunctionDefinition","src":"19810:149:165","nodes":[],"body":{"id":80447,"nodeType":"Block","src":"19883:76:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80442,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"19900:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19900:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19910:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"19900:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19923:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83473,"src":"19900:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80441,"id":80446,"nodeType":"Return","src":"19893:59:165"}]},"baseFunctions":[74862],"documentation":{"id":80437,"nodeType":"StructuredDocumentation","src":"19564: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":"19819:29:165","parameters":{"id":80438,"nodeType":"ParameterList","parameters":[],"src":"19848:2:165"},"returnParameters":{"id":80441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80448,"src":"19874:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80439,"name":"uint256","nodeType":"ElementaryTypeName","src":"19874:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19873:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80460,"nodeType":"FunctionDefinition","src":"20056:108:165","nodes":[],"body":{"id":80459,"nodeType":"Block","src":"20121:43:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80455,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"20138:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20138:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20148:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"20138:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":80454,"id":80458,"nodeType":"Return","src":"20131:26:165"}]},"baseFunctions":[74869],"documentation":{"id":80449,"nodeType":"StructuredDocumentation","src":"19965:86:165","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"20065:9:165","parameters":{"id":80450,"nodeType":"ParameterList","parameters":[],"src":"20074:2:165"},"returnParameters":{"id":80454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80460,"src":"20098:21:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":80452,"nodeType":"UserDefinedTypeName","pathNode":{"id":80451,"name":"Gear.Timelines","nameLocations":["20098:4:165","20103:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83518,"src":"20098:14:165"},"referencedDeclaration":83518,"src":"20098:14:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"20097:23:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80470,"nodeType":"FunctionDefinition","src":"20338:104:165","nodes":[],"body":{"id":80469,"nodeType":"Block","src":"20398:44:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80466,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"20415:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20415:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80465,"id":80468,"nodeType":"Return","src":"20408:27:165"}]},"baseFunctions":[74875],"documentation":{"id":80461,"nodeType":"StructuredDocumentation","src":"20170: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":"20347:16:165","parameters":{"id":80462,"nodeType":"ParameterList","parameters":[],"src":"20363:2:165"},"returnParameters":{"id":80465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80470,"src":"20389:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20389:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20388:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80486,"nodeType":"FunctionDefinition","src":"20606:116:165","nodes":[],"body":{"id":80485,"nodeType":"Block","src":"20663:59:165","nodes":[],"statements":[{"expression":{"id":80483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80478,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"20673:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20673:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20683:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"20673:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20697:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":83294,"src":"20673:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80482,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80473,"src":"20706:9:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20673:42:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80484,"nodeType":"ExpressionStatement","src":"20673:42:165"}]},"baseFunctions":[74881],"documentation":{"id":80471,"nodeType":"StructuredDocumentation","src":"20473: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":80476,"kind":"modifierInvocation","modifierName":{"id":80475,"name":"onlyOwner","nameLocations":["20653:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"20653:9:165"},"nodeType":"ModifierInvocation","src":"20653:9:165"}],"name":"setMirror","nameLocation":"20615:9:165","parameters":{"id":80474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80473,"mutability":"mutable","name":"newMirror","nameLocation":"20633:9:165","nodeType":"VariableDeclaration","scope":80486,"src":"20625:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80472,"name":"address","nodeType":"ElementaryTypeName","src":"20625:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20624:19:165"},"returnParameters":{"id":80477,"nodeType":"ParameterList","parameters":[],"src":"20663:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80502,"nodeType":"FunctionDefinition","src":"20901:161:165","nodes":[],"body":{"id":80501,"nodeType":"Block","src":"20981:81:165","nodes":[],"statements":[{"expression":{"id":80499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80494,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"20991:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20991:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21001:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"20991:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21014:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83470,"src":"20991:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80498,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80489,"src":"21045:10:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20991:64:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80500,"nodeType":"ExpressionStatement","src":"20991:64:165"}]},"baseFunctions":[74887],"documentation":{"id":80487,"nodeType":"StructuredDocumentation","src":"20728: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":80492,"kind":"modifierInvocation","modifierName":{"id":80491,"name":"onlyOwner","nameLocations":["20971:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"20971:9:165"},"nodeType":"ModifierInvocation","src":"20971:9:165"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"20910:31:165","parameters":{"id":80490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80489,"mutability":"mutable","name":"newBaseFee","nameLocation":"20950:10:165","nodeType":"VariableDeclaration","scope":80502,"src":"20942:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80488,"name":"uint256","nodeType":"ElementaryTypeName","src":"20942:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20941:20:165"},"returnParameters":{"id":80493,"nodeType":"ParameterList","parameters":[],"src":"20981:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80518,"nodeType":"FunctionDefinition","src":"21296:165:165","nodes":[],"body":{"id":80517,"nodeType":"Block","src":"21378:83:165","nodes":[],"statements":[{"expression":{"id":80515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80510,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"21388:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21388:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21398:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"21388:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21411:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83473,"src":"21388:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80514,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80505,"src":"21443:11:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21388:66:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80516,"nodeType":"ExpressionStatement","src":"21388:66:165"}]},"baseFunctions":[74893],"documentation":{"id":80503,"nodeType":"StructuredDocumentation","src":"21068: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":80508,"kind":"modifierInvocation","modifierName":{"id":80507,"name":"onlyOwner","nameLocations":["21368:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21368:9:165"},"nodeType":"ModifierInvocation","src":"21368:9:165"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"21305:32:165","parameters":{"id":80506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80505,"mutability":"mutable","name":"newExtraFee","nameLocation":"21346:11:165","nodeType":"VariableDeclaration","scope":80518,"src":"21338:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80504,"name":"uint256","nodeType":"ElementaryTypeName","src":"21338:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21337:21:165"},"returnParameters":{"id":80509,"nodeType":"ParameterList","parameters":[],"src":"21378:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80528,"nodeType":"FunctionDefinition","src":"21516:59:165","nodes":[],"body":{"id":80527,"nodeType":"Block","src":"21550:25:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80524,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43833,"src":"21560:6:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21560:8:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80526,"nodeType":"ExpressionStatement","src":"21560:8:165"}]},"baseFunctions":[74897],"documentation":{"id":80519,"nodeType":"StructuredDocumentation","src":"21467:44:165","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":80522,"kind":"modifierInvocation","modifierName":{"id":80521,"name":"onlyOwner","nameLocations":["21540:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21540:9:165"},"nodeType":"ModifierInvocation","src":"21540:9:165"}],"name":"pause","nameLocation":"21525:5:165","parameters":{"id":80520,"nodeType":"ParameterList","parameters":[],"src":"21530:2:165"},"returnParameters":{"id":80523,"nodeType":"ParameterList","parameters":[],"src":"21550:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80538,"nodeType":"FunctionDefinition","src":"21632:63:165","nodes":[],"body":{"id":80537,"nodeType":"Block","src":"21668:27:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80534,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43857,"src":"21678:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21678:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80536,"nodeType":"ExpressionStatement","src":"21678:10:165"}]},"baseFunctions":[74901],"documentation":{"id":80529,"nodeType":"StructuredDocumentation","src":"21581:46:165","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":80532,"kind":"modifierInvocation","modifierName":{"id":80531,"name":"onlyOwner","nameLocations":["21658:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21658:9:165"},"nodeType":"ModifierInvocation","src":"21658:9:165"}],"name":"unpause","nameLocation":"21641:7:165","parameters":{"id":80530,"nodeType":"ParameterList","parameters":[],"src":"21648:2:165"},"returnParameters":{"id":80533,"nodeType":"ParameterList","parameters":[],"src":"21668:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80593,"nodeType":"FunctionDefinition","src":"21796:385:165","nodes":[],"body":{"id":80592,"nodeType":"Block","src":"21834:347:165","nodes":[],"statements":[{"assignments":[80544],"declarations":[{"constant":false,"id":80544,"mutability":"mutable","name":"router","nameLocation":"21860:6:165","nodeType":"VariableDeclaration","scope":80592,"src":"21844:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80543,"nodeType":"UserDefinedTypeName","pathNode":{"id":80542,"name":"Storage","nameLocations":["21844:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"21844:7:165"},"referencedDeclaration":74535,"src":"21844:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80547,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80545,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"21869:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21844:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80549,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80544,"src":"21897:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"21897:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21917:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83420,"src":"21897:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21933: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":80553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21925:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21925:7:165","typeDescriptions":{}}},"id":80555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21925:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21897:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80557,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74598,"src":"21937:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21937:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80548,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21889:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21889:72:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80560,"nodeType":"ExpressionStatement","src":"21889:72:165"},{"assignments":[80562],"declarations":[{"constant":false,"id":80562,"mutability":"mutable","name":"genesisHash","nameLocation":"21980:11:165","nodeType":"VariableDeclaration","scope":80592,"src":"21972:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80561,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21972:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80568,"initialValue":{"arguments":[{"expression":{"expression":{"id":80564,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80544,"src":"22004:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22011:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"22004:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22024:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83422,"src":"22004:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80563,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"21994:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21994:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21972:59:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80570,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80562,"src":"22050:11:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22073: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":80572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22065:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22065:7:165","typeDescriptions":{}}},"id":80574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22065:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22050:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80576,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"22077:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22077:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80569,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22042:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22042:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80579,"nodeType":"ExpressionStatement","src":"22042:57:165"},{"expression":{"id":80590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":80580,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80544,"src":"22110:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22117:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"22110:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22130:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83420,"src":"22110:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":80586,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80544,"src":"22147:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22154:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"22147:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22167:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83422,"src":"22147:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80585,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22137:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22137:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22110:64:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80591,"nodeType":"ExpressionStatement","src":"22110:64:165"}]},"baseFunctions":[74905],"documentation":{"id":80539,"nodeType":"StructuredDocumentation","src":"21720:71:165","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"21805:17:165","parameters":{"id":80540,"nodeType":"ParameterList","parameters":[],"src":"21822:2:165"},"returnParameters":{"id":80541,"nodeType":"ParameterList","parameters":[],"src":"21834:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80722,"nodeType":"FunctionDefinition","src":"23043:986:165","nodes":[],"body":{"id":80721,"nodeType":"Block","src":"23187:842:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23214: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":80610,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"23205:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23205:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23220:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23205:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80615,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74604,"src":"23223:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23223:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80609,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23197:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23197:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80618,"nodeType":"ExpressionStatement","src":"23197:41:165"},{"assignments":[80621],"declarations":[{"constant":false,"id":80621,"mutability":"mutable","name":"router","nameLocation":"23265:6:165","nodeType":"VariableDeclaration","scope":80721,"src":"23249:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80620,"nodeType":"UserDefinedTypeName","pathNode":{"id":80619,"name":"Storage","nameLocations":["23249:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"23249:7:165"},"referencedDeclaration":74535,"src":"23249:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80624,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80622,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"23274:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23274:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23249:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80626,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80621,"src":"23301:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23308:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"23301:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23321:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83420,"src":"23301:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23337: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":80630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23329:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23329:7:165","typeDescriptions":{}}},"id":80632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23329:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23301:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80634,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74607,"src":"23341:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23341:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80625,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23293:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23293:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80637,"nodeType":"ExpressionStatement","src":"23293:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"},"id":80647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80639,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80621,"src":"23394:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23401:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"23394:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23414:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"23394:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80643,"indexExpression":{"id":80642,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80596,"src":"23420:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23394:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80644,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"23432:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23437:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83405,"src":"23432:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83405_$","typeString":"type(enum Gear.CodeState)"}},"id":80646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23447:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83400,"src":"23432:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"src":"23394:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80648,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74610,"src":"23456:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23456:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80638,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23386:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23386:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80651,"nodeType":"ExpressionStatement","src":"23386:107:165"},{"assignments":[80654],"declarations":[{"constant":false,"id":80654,"mutability":"mutable","name":"_wrappedVara","nameLocation":"23517:12:165","nodeType":"VariableDeclaration","scope":80721,"src":"23504:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"},"typeName":{"id":80653,"nodeType":"UserDefinedTypeName","pathNode":{"id":80652,"name":"IWrappedVara","nameLocations":["23504:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75046,"src":"23504:12:165"},"referencedDeclaration":75046,"src":"23504:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80660,"initialValue":{"arguments":[{"expression":{"expression":{"id":80656,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80621,"src":"23545:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23552:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"23545:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23566:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83297,"src":"23545:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80655,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"23532:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75046_$","typeString":"type(contract IWrappedVara)"}},"id":80659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23532:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"23504:74:165"},{"assignments":[80662],"declarations":[{"constant":false,"id":80662,"mutability":"mutable","name":"baseFee","nameLocation":"23597:7:165","nodeType":"VariableDeclaration","scope":80721,"src":"23589:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80661,"name":"uint256","nodeType":"ElementaryTypeName","src":"23589:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80666,"initialValue":{"expression":{"expression":{"id":80663,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80621,"src":"23607:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23614:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"23607:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23627:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83470,"src":"23607:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23589:66:165"},{"clauses":[{"block":{"id":80681,"nodeType":"Block","src":"23748:2:165","statements":[]},"errorName":"","id":80682,"nodeType":"TryCatchClause","src":"23748:2:165"},{"block":{"id":80683,"nodeType":"Block","src":"23757:2:165","statements":[]},"errorName":"","id":80684,"nodeType":"TryCatchClause","src":"23751:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80669,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23689:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23693:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23689:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80673,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23709:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":80672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23701:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80671,"name":"address","nodeType":"ElementaryTypeName","src":"23701:7:165","typeDescriptions":{}}},"id":80674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23701:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80675,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80662,"src":"23716:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80676,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80598,"src":"23725:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80677,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80600,"src":"23736:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80678,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80602,"src":"23740:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80679,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80604,"src":"23744: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":80667,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80654,"src":"23669:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":80668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23682:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"23669: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":80680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23669:78:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80685,"nodeType":"TryStatement","src":"23665:94:165"},{"assignments":[80687],"declarations":[{"constant":false,"id":80687,"mutability":"mutable","name":"success","nameLocation":"23773:7:165","nodeType":"VariableDeclaration","scope":80721,"src":"23768:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80686,"name":"bool","nodeType":"ElementaryTypeName","src":"23768:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80698,"initialValue":{"arguments":[{"expression":{"id":80690,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23809:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23813:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23809:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80694,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23829:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":80693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23821:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80692,"name":"address","nodeType":"ElementaryTypeName","src":"23821:7:165","typeDescriptions":{}}},"id":80695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23821:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80696,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80662,"src":"23836: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":80688,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80654,"src":"23783:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":80689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23796:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"23783: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":80697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23783:61:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"23768:76:165"},{"expression":{"arguments":[{"id":80700,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80687,"src":"23862:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80701,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74643,"src":"23871:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23871:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80699,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23854:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23854:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80704,"nodeType":"ExpressionStatement","src":"23854:38:165"},{"expression":{"id":80715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80705,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80621,"src":"23903:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23910:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"23903:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23923:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"23903:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80711,"indexExpression":{"id":80708,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80596,"src":"23929:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23903:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80712,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"23940:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23945:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83405,"src":"23940:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83405_$","typeString":"type(enum Gear.CodeState)"}},"id":80714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23955:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83402,"src":"23940:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"src":"23903:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"id":80716,"nodeType":"ExpressionStatement","src":"23903:71:165"},{"eventCall":{"arguments":[{"id":80718,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80596,"src":"24014:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80717,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74557,"src":"23990:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23990:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80720,"nodeType":"EmitStatement","src":"23985:37:165"}]},"baseFunctions":[74919],"documentation":{"id":80594,"nodeType":"StructuredDocumentation","src":"22187: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":80607,"kind":"modifierInvocation","modifierName":{"id":80606,"name":"whenNotPaused","nameLocations":["23169:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"23169:13:165"},"nodeType":"ModifierInvocation","src":"23169:13:165"}],"name":"requestCodeValidation","nameLocation":"23052:21:165","parameters":{"id":80605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80596,"mutability":"mutable","name":"_codeId","nameLocation":"23082:7:165","nodeType":"VariableDeclaration","scope":80722,"src":"23074:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23074:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80598,"mutability":"mutable","name":"_deadline","nameLocation":"23099:9:165","nodeType":"VariableDeclaration","scope":80722,"src":"23091:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80597,"name":"uint256","nodeType":"ElementaryTypeName","src":"23091:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80600,"mutability":"mutable","name":"_v","nameLocation":"23116:2:165","nodeType":"VariableDeclaration","scope":80722,"src":"23110:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80599,"name":"uint8","nodeType":"ElementaryTypeName","src":"23110:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80602,"mutability":"mutable","name":"_r","nameLocation":"23128:2:165","nodeType":"VariableDeclaration","scope":80722,"src":"23120:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23120:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80604,"mutability":"mutable","name":"_s","nameLocation":"23140:2:165","nodeType":"VariableDeclaration","scope":80722,"src":"23132:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23132:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23073:70:165"},"returnParameters":{"id":80608,"nodeType":"ParameterList","parameters":[],"src":"23187:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80988,"nodeType":"FunctionDefinition","src":"25536:2418:165","nodes":[],"body":{"id":80987,"nodeType":"Block","src":"25846:2108:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25873: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":80750,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"25864:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25864:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25879:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25864:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80755,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74604,"src":"25882:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25882:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80749,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25856:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25856:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80758,"nodeType":"ExpressionStatement","src":"25856:41:165"},{"assignments":[80761],"declarations":[{"constant":false,"id":80761,"mutability":"mutable","name":"router","nameLocation":"25924:6:165","nodeType":"VariableDeclaration","scope":80987,"src":"25908:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80760,"nodeType":"UserDefinedTypeName","pathNode":{"id":80759,"name":"Storage","nameLocations":["25908:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"25908:7:165"},"referencedDeclaration":74535,"src":"25908:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80764,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80762,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"25933:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25933:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25908:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80766,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80761,"src":"25960:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25967:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"25960:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25980:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83420,"src":"25960:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25996: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":80770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25988:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80769,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25988:7:165","typeDescriptions":{}}},"id":80772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25988:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25960:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80774,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74607,"src":"26000:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26000:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80765,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25952:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25952:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80777,"nodeType":"ExpressionStatement","src":"25952:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"},"id":80787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80779,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80761,"src":"26053:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26060:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"26053:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26073:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"26053:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80783,"indexExpression":{"id":80782,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80727,"src":"26079:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26053:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80784,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"26091:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26096:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83405,"src":"26091:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83405_$","typeString":"type(enum Gear.CodeState)"}},"id":80786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26106:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83400,"src":"26091:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"src":"26053:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80788,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74610,"src":"26115:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26115:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80778,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26045:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26045:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80791,"nodeType":"ExpressionStatement","src":"26045:107:165"},{"assignments":[80793],"declarations":[{"constant":false,"id":80793,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"26171:17:165","nodeType":"VariableDeclaration","scope":80987,"src":"26163:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80792,"name":"uint256","nodeType":"ElementaryTypeName","src":"26163:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80795,"initialValue":{"hexValue":"30","id":80794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26191:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26163:29:165"},{"body":{"id":80811,"nodeType":"Block","src":"26215:142:165","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":80798,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80793,"src":"26242:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80797,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26233:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26233:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26272: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":80801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26264:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80800,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26264:7:165","typeDescriptions":{}}},"id":80803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26264:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26233:41:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80807,"nodeType":"IfStatement","src":"26229:85:165","trueBody":{"id":80806,"nodeType":"Block","src":"26276:38:165","statements":[{"id":80805,"nodeType":"Break","src":"26294:5:165"}]}},{"expression":{"id":80809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26327:19:165","subExpression":{"id":80808,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80793,"src":"26327:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80810,"nodeType":"ExpressionStatement","src":"26327:19:165"}]},"condition":{"hexValue":"74727565","id":80796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26209:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":80812,"nodeType":"WhileStatement","src":"26202:155:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80814,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80730,"src":"26375:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26387:6:165","memberName":"length","nodeType":"MemberAccess","src":"26375:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80816,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80793,"src":"26397:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26375:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":80819,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80730,"src":"26440:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26452:6:165","memberName":"length","nodeType":"MemberAccess","src":"26440:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80821,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80793,"src":"26460:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80818,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74617,"src":"26416:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":80822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26416:62:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80813,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26367:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26367:112:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80824,"nodeType":"ExpressionStatement","src":"26367:112:165"},{"body":{"id":80857,"nodeType":"Block","src":"26539:174:165","statements":[{"assignments":[80837],"declarations":[{"constant":false,"id":80837,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"26561:16:165","nodeType":"VariableDeclaration","scope":80857,"src":"26553:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80836,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26553:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80841,"initialValue":{"arguments":[{"id":80839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80826,"src":"26589:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80838,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26580:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26580:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26553:38:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":80843,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80730,"src":"26613:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80845,"indexExpression":{"id":80844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80826,"src":"26625:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26613:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80846,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80837,"src":"26631:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26613:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80849,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80826,"src":"26665:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":80850,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80730,"src":"26668:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80852,"indexExpression":{"id":80851,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80826,"src":"26680:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26668:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80853,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80837,"src":"26684: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":80848,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74626,"src":"26649: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":80854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26649:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80842,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26605:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26605:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80856,"nodeType":"ExpressionStatement","src":"26605:97:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80829,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80826,"src":"26510:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80830,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80730,"src":"26514:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26526:6:165","memberName":"length","nodeType":"MemberAccess","src":"26514:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26510:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80858,"initializationExpression":{"assignments":[80826],"declarations":[{"constant":false,"id":80826,"mutability":"mutable","name":"i","nameLocation":"26503:1:165","nodeType":"VariableDeclaration","scope":80858,"src":"26495:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80825,"name":"uint256","nodeType":"ElementaryTypeName","src":"26495:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80828,"initialValue":{"hexValue":"30","id":80827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26507:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26495:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26534:3:165","subExpression":{"id":80833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80826,"src":"26534:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80835,"nodeType":"ExpressionStatement","src":"26534:3:165"},"nodeType":"ForStatement","src":"26490:223:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80860,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26789:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26795:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"26789:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":80862,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80732,"src":"26808:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26789:28:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80865,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80732,"src":"26836:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80864,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"26819:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":80866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26819:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80859,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26781:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26781:66:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80868,"nodeType":"ExpressionStatement","src":"26781:66:165"},{"assignments":[80870],"declarations":[{"constant":false,"id":80870,"mutability":"mutable","name":"structHash","nameLocation":"26866:10:165","nodeType":"VariableDeclaration","scope":80987,"src":"26858:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80869,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26858:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80889,"initialValue":{"arguments":[{"arguments":[{"id":80874,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79588,"src":"26930:42:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80875,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"26990:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80876,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80727,"src":"27018:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":80880,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80730,"src":"27070: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":80878,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27053:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27057:12:165","memberName":"encodePacked","nodeType":"MemberAccess","src":"27053:16:165","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27053:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80877,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27043:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27043:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":80884,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"27111:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80883,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43672,"src":"27101:9:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":80885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27101:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80886,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80732,"src":"27140: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":80872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26902:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26906:6:165","memberName":"encode","nodeType":"MemberAccess","src":"26902:10:165","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26902:261:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80871,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26879:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26879:294:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26858:315:165"},{"assignments":[80891],"declarations":[{"constant":false,"id":80891,"mutability":"mutable","name":"hash","nameLocation":"27192:4:165","nodeType":"VariableDeclaration","scope":80987,"src":"27184:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27184:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80895,"initialValue":{"arguments":[{"id":80893,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80870,"src":"27216:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80892,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"27199:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":80894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27199:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27184:43:165"},{"assignments":[80897],"declarations":[{"constant":false,"id":80897,"mutability":"mutable","name":"signer","nameLocation":"27246:6:165","nodeType":"VariableDeclaration","scope":80987,"src":"27238:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80896,"name":"address","nodeType":"ElementaryTypeName","src":"27238:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80905,"initialValue":{"arguments":[{"id":80900,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80891,"src":"27269:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80901,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80734,"src":"27275:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80902,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80736,"src":"27280:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80903,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80738,"src":"27285: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":80898,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"27255:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$51038_$","typeString":"type(library ECDSA)"}},"id":80899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27261:7:165","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50988,"src":"27255: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":80904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27255:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27238:51:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80907,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80897,"src":"27307:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80908,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"27317:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27307:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80911,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80897,"src":"27343:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80912,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"27351:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":80910,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74638,"src":"27329:13:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":80913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27329:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80906,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27299:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27299:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80915,"nodeType":"ExpressionStatement","src":"27299:64:165"},{"assignments":[80918],"declarations":[{"constant":false,"id":80918,"mutability":"mutable","name":"_wrappedVara","nameLocation":"27387:12:165","nodeType":"VariableDeclaration","scope":80987,"src":"27374:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"},"typeName":{"id":80917,"nodeType":"UserDefinedTypeName","pathNode":{"id":80916,"name":"IWrappedVara","nameLocations":["27374:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75046,"src":"27374:12:165"},"referencedDeclaration":75046,"src":"27374:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80924,"initialValue":{"arguments":[{"expression":{"expression":{"id":80920,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80761,"src":"27415:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27422:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"27415:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27436:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83297,"src":"27415:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80919,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"27402:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75046_$","typeString":"type(contract IWrappedVara)"}},"id":80923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27402:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"27374:74:165"},{"assignments":[80926],"declarations":[{"constant":false,"id":80926,"mutability":"mutable","name":"fee","nameLocation":"27467:3:165","nodeType":"VariableDeclaration","scope":80987,"src":"27459:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80925,"name":"uint256","nodeType":"ElementaryTypeName","src":"27459:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80934,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80927,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80761,"src":"27485:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27492:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"27485:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27505:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83470,"src":"27485:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":80930,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80761,"src":"27536:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27543:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"27536:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27556:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83473,"src":"27536:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27485:100:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27459:126:165"},{"clauses":[{"block":{"id":80948,"nodeType":"Block","src":"27677:2:165","statements":[]},"errorName":"","id":80949,"nodeType":"TryCatchClause","src":"27677:2:165"},{"block":{"id":80950,"nodeType":"Block","src":"27686:2:165","statements":[]},"errorName":"","id":80951,"nodeType":"TryCatchClause","src":"27680:8:165"}],"externalCall":{"arguments":[{"id":80937,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"27619:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80940,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27639:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":80939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27631:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80938,"name":"address","nodeType":"ElementaryTypeName","src":"27631:7:165","typeDescriptions":{}}},"id":80941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27631:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80942,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"27646:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80943,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80732,"src":"27651:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80944,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80740,"src":"27662:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80945,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80742,"src":"27667:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80946,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80744,"src":"27672: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":80935,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80918,"src":"27599:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":80936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27612:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"27599: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":80947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27599:77:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80952,"nodeType":"TryStatement","src":"27595:93:165"},{"assignments":[80954],"declarations":[{"constant":false,"id":80954,"mutability":"mutable","name":"success","nameLocation":"27702:7:165","nodeType":"VariableDeclaration","scope":80987,"src":"27697:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80953,"name":"bool","nodeType":"ElementaryTypeName","src":"27697:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80964,"initialValue":{"arguments":[{"id":80957,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"27738:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80960,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27758:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":80959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27750:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80958,"name":"address","nodeType":"ElementaryTypeName","src":"27750:7:165","typeDescriptions":{}}},"id":80961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27750:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80962,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"27765: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":80955,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80918,"src":"27712:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":80956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27725:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"27712: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":80963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27712:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27697:72:165"},{"expression":{"arguments":[{"id":80966,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80954,"src":"27787:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80967,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74643,"src":"27796:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27796:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80965,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27779:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27779:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80970,"nodeType":"ExpressionStatement","src":"27779:38:165"},{"expression":{"id":80981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80971,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80761,"src":"27828:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27835:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"27828:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27848:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"27828:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80977,"indexExpression":{"id":80974,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80727,"src":"27854:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27828:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80978,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"27865:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":80979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27870:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83405,"src":"27865:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83405_$","typeString":"type(enum Gear.CodeState)"}},"id":80980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27880:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83402,"src":"27865:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"src":"27828:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"id":80982,"nodeType":"ExpressionStatement","src":"27828:71:165"},{"eventCall":{"arguments":[{"id":80984,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80727,"src":"27939:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80983,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74557,"src":"27915:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27915:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80986,"nodeType":"EmitStatement","src":"27910:37:165"}]},"baseFunctions":[74944],"documentation":{"id":80723,"nodeType":"StructuredDocumentation","src":"24035: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":80747,"kind":"modifierInvocation","modifierName":{"id":80746,"name":"whenNotPaused","nameLocations":["25832:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"25832:13:165"},"nodeType":"ModifierInvocation","src":"25832:13:165"}],"name":"requestCodeValidationOnBehalf","nameLocation":"25545:29:165","parameters":{"id":80745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80725,"mutability":"mutable","name":"_requester","nameLocation":"25592:10:165","nodeType":"VariableDeclaration","scope":80988,"src":"25584:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80724,"name":"address","nodeType":"ElementaryTypeName","src":"25584:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80727,"mutability":"mutable","name":"_codeId","nameLocation":"25620:7:165","nodeType":"VariableDeclaration","scope":80988,"src":"25612:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25612:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80730,"mutability":"mutable","name":"_blobHashes","nameLocation":"25656:11:165","nodeType":"VariableDeclaration","scope":80988,"src":"25637:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25637:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80729,"nodeType":"ArrayTypeName","src":"25637:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":80732,"mutability":"mutable","name":"_deadline","nameLocation":"25685:9:165","nodeType":"VariableDeclaration","scope":80988,"src":"25677:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80731,"name":"uint256","nodeType":"ElementaryTypeName","src":"25677:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80734,"mutability":"mutable","name":"_v1","nameLocation":"25710:3:165","nodeType":"VariableDeclaration","scope":80988,"src":"25704:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80733,"name":"uint8","nodeType":"ElementaryTypeName","src":"25704:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80736,"mutability":"mutable","name":"_r1","nameLocation":"25731:3:165","nodeType":"VariableDeclaration","scope":80988,"src":"25723:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80735,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25723:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80738,"mutability":"mutable","name":"_s1","nameLocation":"25752:3:165","nodeType":"VariableDeclaration","scope":80988,"src":"25744:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25744:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80740,"mutability":"mutable","name":"_v2","nameLocation":"25771:3:165","nodeType":"VariableDeclaration","scope":80988,"src":"25765:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80739,"name":"uint8","nodeType":"ElementaryTypeName","src":"25765:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80742,"mutability":"mutable","name":"_r2","nameLocation":"25792:3:165","nodeType":"VariableDeclaration","scope":80988,"src":"25784:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25784:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80744,"mutability":"mutable","name":"_s2","nameLocation":"25813:3:165","nodeType":"VariableDeclaration","scope":80988,"src":"25805:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25805:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25574:248:165"},"returnParameters":{"id":80748,"nodeType":"ParameterList","parameters":[],"src":"25846:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81033,"nodeType":"FunctionDefinition","src":"29034:396:165","nodes":[],"body":{"id":81032,"nodeType":"Block","src":"29188:242:165","nodes":[],"statements":[{"assignments":[81003,null],"declarations":[{"constant":false,"id":81003,"mutability":"mutable","name":"mirror","nameLocation":"29207:6:165","nodeType":"VariableDeclaration","scope":81032,"src":"29199:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81002,"name":"address","nodeType":"ElementaryTypeName","src":"29199:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81009,"initialValue":{"arguments":[{"id":81005,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80991,"src":"29233:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81006,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80993,"src":"29242:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":81007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29249: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":81004,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81560,"src":"29218:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29218:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"29198:56:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81014,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80995,"src":"29305:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29337: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":81016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29329:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81015,"name":"address","nodeType":"ElementaryTypeName","src":"29329:7:165","typeDescriptions":{}}},"id":81018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29329:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"29305:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81022,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80995,"src":"29355:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"29305:70:165","trueExpression":{"expression":{"id":81020,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29342:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29346:6:165","memberName":"sender","nodeType":"MemberAccess","src":"29342:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81024,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80019,"src":"29377:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29377:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29391:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":81027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29397: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":81011,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81003,"src":"29273:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81010,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74440,"src":"29265:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74440_$","typeString":"type(contract IMirror)"}},"id":81012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29265:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"id":81013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29294:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74430,"src":"29265: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":81028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29265:134:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81029,"nodeType":"ExpressionStatement","src":"29265:134:165"},{"expression":{"id":81030,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81003,"src":"29417:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81001,"id":81031,"nodeType":"Return","src":"29410:13:165"}]},"baseFunctions":[74956],"documentation":{"id":80989,"nodeType":"StructuredDocumentation","src":"27960: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":80998,"kind":"modifierInvocation","modifierName":{"id":80997,"name":"whenNotPaused","nameLocations":["29144:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"29144:13:165"},"nodeType":"ModifierInvocation","src":"29144:13:165"}],"name":"createProgram","nameLocation":"29043:13:165","parameters":{"id":80996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80991,"mutability":"mutable","name":"_codeId","nameLocation":"29065:7:165","nodeType":"VariableDeclaration","scope":81033,"src":"29057:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29057:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80993,"mutability":"mutable","name":"_salt","nameLocation":"29082:5:165","nodeType":"VariableDeclaration","scope":81033,"src":"29074:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80992,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29074:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80995,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"29097:20:165","nodeType":"VariableDeclaration","scope":81033,"src":"29089:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80994,"name":"address","nodeType":"ElementaryTypeName","src":"29089:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29056:62:165"},"returnParameters":{"id":81001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81033,"src":"29175:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80999,"name":"address","nodeType":"ElementaryTypeName","src":"29175:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29174:9:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81138,"nodeType":"FunctionDefinition","src":"30903:1031:165","nodes":[],"body":{"id":81137,"nodeType":"Block","src":"31208:726:165","nodes":[],"statements":[{"assignments":[81058,81061],"declarations":[{"constant":false,"id":81058,"mutability":"mutable","name":"mirror","nameLocation":"31227:6:165","nodeType":"VariableDeclaration","scope":81137,"src":"31219:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81057,"name":"address","nodeType":"ElementaryTypeName","src":"31219:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81061,"mutability":"mutable","name":"router","nameLocation":"31251:6:165","nodeType":"VariableDeclaration","scope":81137,"src":"31235:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81060,"nodeType":"UserDefinedTypeName","pathNode":{"id":81059,"name":"Storage","nameLocations":["31235:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"31235:7:165"},"referencedDeclaration":74535,"src":"31235:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81067,"initialValue":{"arguments":[{"id":81063,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81036,"src":"31276:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81064,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81038,"src":"31285:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":81065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31292: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":81062,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81560,"src":"31261:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31261:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"31218:79:165"},{"assignments":[81070],"declarations":[{"constant":false,"id":81070,"mutability":"mutable","name":"_wrappedVara","nameLocation":"31321:12:165","nodeType":"VariableDeclaration","scope":81137,"src":"31308:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"},"typeName":{"id":81069,"nodeType":"UserDefinedTypeName","pathNode":{"id":81068,"name":"IWrappedVara","nameLocations":["31308:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75046,"src":"31308:12:165"},"referencedDeclaration":75046,"src":"31308:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81076,"initialValue":{"arguments":[{"expression":{"expression":{"id":81072,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81061,"src":"31349:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31356:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"31349:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31370:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83297,"src":"31349:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81071,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"31336:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75046_$","typeString":"type(contract IWrappedVara)"}},"id":81075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31336:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"31308:74:165"},{"clauses":[{"block":{"id":81091,"nodeType":"Block","src":"31494:2:165","statements":[]},"errorName":"","id":81092,"nodeType":"TryCatchClause","src":"31494:2:165"},{"block":{"id":81093,"nodeType":"Block","src":"31503:2:165","statements":[]},"errorName":"","id":81094,"nodeType":"TryCatchClause","src":"31497:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81079,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31417:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31421:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31417:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81083,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31437:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":81082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31429:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81081,"name":"address","nodeType":"ElementaryTypeName","src":"31429:7:165","typeDescriptions":{}}},"id":81084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31429:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81085,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81042,"src":"31444:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81086,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81044,"src":"31471:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81087,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81046,"src":"31482:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81088,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81048,"src":"31486:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81089,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81050,"src":"31490: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":81077,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81070,"src":"31397:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":81078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31410:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"31397: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":81090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31397:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81095,"nodeType":"TryStatement","src":"31393:112:165"},{"assignments":[81097],"declarations":[{"constant":false,"id":81097,"mutability":"mutable","name":"success","nameLocation":"31519:7:165","nodeType":"VariableDeclaration","scope":81137,"src":"31514:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81096,"name":"bool","nodeType":"ElementaryTypeName","src":"31514:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81108,"initialValue":{"arguments":[{"expression":{"id":81100,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31555:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31559:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31555:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81104,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31575:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":81103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31567:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81102,"name":"address","nodeType":"ElementaryTypeName","src":"31567:7:165","typeDescriptions":{}}},"id":81105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31567:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81106,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81042,"src":"31582: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":81098,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81070,"src":"31529:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":81099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31542:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"31529: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":81107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31529:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31514:94:165"},{"expression":{"arguments":[{"id":81110,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81097,"src":"31626:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81111,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74643,"src":"31635:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31635:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81109,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31618:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31618:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81114,"nodeType":"ExpressionStatement","src":"31618:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81119,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81040,"src":"31724:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31756: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":81121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31748:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81120,"name":"address","nodeType":"ElementaryTypeName","src":"31748:7:165","typeDescriptions":{}}},"id":81123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31748:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31724:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81127,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81040,"src":"31774:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31724:70:165","trueExpression":{"expression":{"id":81125,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31761:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31765:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31761:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81129,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80019,"src":"31812:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31812:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31842:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":81132,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81042,"src":"31864: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":81116,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81058,"src":"31675:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81115,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74440,"src":"31667:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74440_$","typeString":"type(contract IMirror)"}},"id":81117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31667:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"id":81118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31696:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74430,"src":"31667: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":81133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31667:236:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81134,"nodeType":"ExpressionStatement","src":"31667:236:165"},{"expression":{"id":81135,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81058,"src":"31921:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81056,"id":81136,"nodeType":"Return","src":"31914:13:165"}]},"baseFunctions":[74978],"documentation":{"id":81034,"nodeType":"StructuredDocumentation","src":"29436: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":81053,"kind":"modifierInvocation","modifierName":{"id":81052,"name":"whenNotPaused","nameLocations":["31176:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"31176:13:165"},"nodeType":"ModifierInvocation","src":"31176:13:165"}],"name":"createProgramWithExecutableBalance","nameLocation":"30912:34:165","parameters":{"id":81051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81036,"mutability":"mutable","name":"_codeId","nameLocation":"30964:7:165","nodeType":"VariableDeclaration","scope":81138,"src":"30956:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30956:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81038,"mutability":"mutable","name":"_salt","nameLocation":"30989:5:165","nodeType":"VariableDeclaration","scope":81138,"src":"30981:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30981:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81040,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"31012:20:165","nodeType":"VariableDeclaration","scope":81138,"src":"31004:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81039,"name":"address","nodeType":"ElementaryTypeName","src":"31004:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81042,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"31050:25:165","nodeType":"VariableDeclaration","scope":81138,"src":"31042:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81041,"name":"uint128","nodeType":"ElementaryTypeName","src":"31042:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81044,"mutability":"mutable","name":"_deadline","nameLocation":"31093:9:165","nodeType":"VariableDeclaration","scope":81138,"src":"31085:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81043,"name":"uint256","nodeType":"ElementaryTypeName","src":"31085:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81046,"mutability":"mutable","name":"_v","nameLocation":"31118:2:165","nodeType":"VariableDeclaration","scope":81138,"src":"31112:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81045,"name":"uint8","nodeType":"ElementaryTypeName","src":"31112:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81048,"mutability":"mutable","name":"_r","nameLocation":"31138:2:165","nodeType":"VariableDeclaration","scope":81138,"src":"31130:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31130:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81050,"mutability":"mutable","name":"_s","nameLocation":"31158:2:165","nodeType":"VariableDeclaration","scope":81138,"src":"31150:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31150:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30946:220:165"},"returnParameters":{"id":81056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81138,"src":"31199:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81054,"name":"address","nodeType":"ElementaryTypeName","src":"31199:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31198:9:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81184,"nodeType":"FunctionDefinition","src":"33096:448:165","nodes":[],"body":{"id":81183,"nodeType":"Block","src":"33299:245:165","nodes":[],"statements":[{"assignments":[81155,null],"declarations":[{"constant":false,"id":81155,"mutability":"mutable","name":"mirror","nameLocation":"33318:6:165","nodeType":"VariableDeclaration","scope":81183,"src":"33310:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81154,"name":"address","nodeType":"ElementaryTypeName","src":"33310:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81161,"initialValue":{"arguments":[{"id":81157,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81141,"src":"33344:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81158,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81143,"src":"33353:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33360: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":81156,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81560,"src":"33329:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33329:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"33309:57:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81166,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81145,"src":"33417:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33449: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":81168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33441:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81167,"name":"address","nodeType":"ElementaryTypeName","src":"33441:7:165","typeDescriptions":{}}},"id":81170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33441:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"33417:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81174,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81145,"src":"33467:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33417:70:165","trueExpression":{"expression":{"id":81172,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33454:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33458:6:165","memberName":"sender","nodeType":"MemberAccess","src":"33454:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81176,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81147,"src":"33489:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33504:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":81178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33511: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":81163,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81155,"src":"33385:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81162,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74440,"src":"33377:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74440_$","typeString":"type(contract IMirror)"}},"id":81164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33377:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"id":81165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33406:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74430,"src":"33377: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":81179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33377:136:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81180,"nodeType":"ExpressionStatement","src":"33377:136:165"},{"expression":{"id":81181,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81155,"src":"33531:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81153,"id":81182,"nodeType":"Return","src":"33524:13:165"}]},"baseFunctions":[74992],"documentation":{"id":81139,"nodeType":"StructuredDocumentation","src":"31940: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":81150,"kind":"modifierInvocation","modifierName":{"id":81149,"name":"whenNotPaused","nameLocations":["33267:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"33267:13:165"},"nodeType":"ModifierInvocation","src":"33267:13:165"}],"name":"createProgramWithAbiInterface","nameLocation":"33105:29:165","parameters":{"id":81148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81141,"mutability":"mutable","name":"_codeId","nameLocation":"33152:7:165","nodeType":"VariableDeclaration","scope":81184,"src":"33144:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33144:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81143,"mutability":"mutable","name":"_salt","nameLocation":"33177:5:165","nodeType":"VariableDeclaration","scope":81184,"src":"33169:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33169:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81145,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"33200:20:165","nodeType":"VariableDeclaration","scope":81184,"src":"33192:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81144,"name":"address","nodeType":"ElementaryTypeName","src":"33192:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81147,"mutability":"mutable","name":"_abiInterface","nameLocation":"33238:13:165","nodeType":"VariableDeclaration","scope":81184,"src":"33230:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81146,"name":"address","nodeType":"ElementaryTypeName","src":"33230:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33134:123:165"},"returnParameters":{"id":81153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81184,"src":"33290:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81151,"name":"address","nodeType":"ElementaryTypeName","src":"33290:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33289:9:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81290,"nodeType":"FunctionDefinition","src":"35100:1080:165","nodes":[],"body":{"id":81289,"nodeType":"Block","src":"35451:729:165","nodes":[],"statements":[{"assignments":[81211,81214],"declarations":[{"constant":false,"id":81211,"mutability":"mutable","name":"mirror","nameLocation":"35470:6:165","nodeType":"VariableDeclaration","scope":81289,"src":"35462:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81210,"name":"address","nodeType":"ElementaryTypeName","src":"35462:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81214,"mutability":"mutable","name":"router","nameLocation":"35494:6:165","nodeType":"VariableDeclaration","scope":81289,"src":"35478:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81213,"nodeType":"UserDefinedTypeName","pathNode":{"id":81212,"name":"Storage","nameLocations":["35478:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"35478:7:165"},"referencedDeclaration":74535,"src":"35478:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81220,"initialValue":{"arguments":[{"id":81216,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81187,"src":"35519:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81217,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81189,"src":"35528:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35535: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":81215,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81560,"src":"35504:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35504:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"35461:80:165"},{"assignments":[81223],"declarations":[{"constant":false,"id":81223,"mutability":"mutable","name":"_wrappedVara","nameLocation":"35565:12:165","nodeType":"VariableDeclaration","scope":81289,"src":"35552:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"},"typeName":{"id":81222,"nodeType":"UserDefinedTypeName","pathNode":{"id":81221,"name":"IWrappedVara","nameLocations":["35552:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75046,"src":"35552:12:165"},"referencedDeclaration":75046,"src":"35552:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81229,"initialValue":{"arguments":[{"expression":{"expression":{"id":81225,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81214,"src":"35593:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35600:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"35593:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35614:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83297,"src":"35593:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81224,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"35580:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75046_$","typeString":"type(contract IWrappedVara)"}},"id":81228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35580:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"35552:74:165"},{"clauses":[{"block":{"id":81244,"nodeType":"Block","src":"35738:2:165","statements":[]},"errorName":"","id":81245,"nodeType":"TryCatchClause","src":"35738:2:165"},{"block":{"id":81246,"nodeType":"Block","src":"35747:2:165","statements":[]},"errorName":"","id":81247,"nodeType":"TryCatchClause","src":"35741:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81232,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35661:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35665:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35661:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81236,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35681:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":81235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35673:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81234,"name":"address","nodeType":"ElementaryTypeName","src":"35673:7:165","typeDescriptions":{}}},"id":81237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35673:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81238,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81195,"src":"35688:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81239,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81197,"src":"35715:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81240,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81199,"src":"35726:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81241,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81201,"src":"35730:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81242,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81203,"src":"35734: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":81230,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81223,"src":"35641:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":81231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35654:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"35641: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":81243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35641:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81248,"nodeType":"TryStatement","src":"35637:112:165"},{"assignments":[81250],"declarations":[{"constant":false,"id":81250,"mutability":"mutable","name":"success","nameLocation":"35763:7:165","nodeType":"VariableDeclaration","scope":81289,"src":"35758:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81249,"name":"bool","nodeType":"ElementaryTypeName","src":"35758:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81261,"initialValue":{"arguments":[{"expression":{"id":81253,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35799:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35803:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35799:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81257,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35819:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":81256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35811:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81255,"name":"address","nodeType":"ElementaryTypeName","src":"35811:7:165","typeDescriptions":{}}},"id":81258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35811:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81259,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81195,"src":"35826: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":81251,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81223,"src":"35773:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":81252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35786:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"35773: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":81260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35773:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"35758:94:165"},{"expression":{"arguments":[{"id":81263,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81250,"src":"35870:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81264,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74643,"src":"35879:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35879:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81262,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"35862:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35862:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81267,"nodeType":"ExpressionStatement","src":"35862:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81272,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81191,"src":"35968:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36000: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":81274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35992:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81273,"name":"address","nodeType":"ElementaryTypeName","src":"35992:7:165","typeDescriptions":{}}},"id":81276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35992:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"35968:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81280,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81191,"src":"36018:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35968:70:165","trueExpression":{"expression":{"id":81278,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36005:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36009:6:165","memberName":"sender","nodeType":"MemberAccess","src":"36005:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81282,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81193,"src":"36056:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36087:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":81284,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81195,"src":"36110: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":81269,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"35919:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81268,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74440,"src":"35911:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74440_$","typeString":"type(contract IMirror)"}},"id":81270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35911:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"id":81271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35940:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74430,"src":"35911: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":81285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35911:238:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81286,"nodeType":"ExpressionStatement","src":"35911:238:165"},{"expression":{"id":81287,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"36167:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81209,"id":81288,"nodeType":"Return","src":"36160:13:165"}]},"baseFunctions":[75016],"documentation":{"id":81185,"nodeType":"StructuredDocumentation","src":"33550: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":81206,"kind":"modifierInvocation","modifierName":{"id":81205,"name":"whenNotPaused","nameLocations":["35419:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"35419:13:165"},"nodeType":"ModifierInvocation","src":"35419:13:165"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"35109:49:165","parameters":{"id":81204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81187,"mutability":"mutable","name":"_codeId","nameLocation":"35176:7:165","nodeType":"VariableDeclaration","scope":81290,"src":"35168:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35168:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81189,"mutability":"mutable","name":"_salt","nameLocation":"35201:5:165","nodeType":"VariableDeclaration","scope":81290,"src":"35193:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35193:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81191,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"35224:20:165","nodeType":"VariableDeclaration","scope":81290,"src":"35216:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81190,"name":"address","nodeType":"ElementaryTypeName","src":"35216:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81193,"mutability":"mutable","name":"_abiInterface","nameLocation":"35262:13:165","nodeType":"VariableDeclaration","scope":81290,"src":"35254:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81192,"name":"address","nodeType":"ElementaryTypeName","src":"35254:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81195,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"35293:25:165","nodeType":"VariableDeclaration","scope":81290,"src":"35285:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81194,"name":"uint128","nodeType":"ElementaryTypeName","src":"35285:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81197,"mutability":"mutable","name":"_deadline","nameLocation":"35336:9:165","nodeType":"VariableDeclaration","scope":81290,"src":"35328:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81196,"name":"uint256","nodeType":"ElementaryTypeName","src":"35328:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81199,"mutability":"mutable","name":"_v","nameLocation":"35361:2:165","nodeType":"VariableDeclaration","scope":81290,"src":"35355:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81198,"name":"uint8","nodeType":"ElementaryTypeName","src":"35355:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81201,"mutability":"mutable","name":"_r","nameLocation":"35381:2:165","nodeType":"VariableDeclaration","scope":81290,"src":"35373:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35373:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81203,"mutability":"mutable","name":"_s","nameLocation":"35401:2:165","nodeType":"VariableDeclaration","scope":81290,"src":"35393:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35393:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35158:251:165"},"returnParameters":{"id":81209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81290,"src":"35442:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81207,"name":"address","nodeType":"ElementaryTypeName","src":"35442:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35441:9:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81457,"nodeType":"FunctionDefinition","src":"36648:2151:165","nodes":[],"body":{"id":81456,"nodeType":"Block","src":"36824:1975:165","nodes":[],"statements":[{"assignments":[81307],"declarations":[{"constant":false,"id":81307,"mutability":"mutable","name":"router","nameLocation":"36850:6:165","nodeType":"VariableDeclaration","scope":81456,"src":"36834:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81306,"nodeType":"UserDefinedTypeName","pathNode":{"id":81305,"name":"Storage","nameLocations":["36834:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"36834:7:165"},"referencedDeclaration":74535,"src":"36834:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81310,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81308,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"36859:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36859:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"36834:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81312,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"36887:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36894:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"36887:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36907:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83420,"src":"36887:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36923: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":81316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36915:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36915:7:165","typeDescriptions":{}}},"id":81318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36915:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"36887:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81320,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74607,"src":"36927:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36927:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81311,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"36879:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36879:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81323,"nodeType":"ExpressionStatement","src":"36879:82:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81324,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"37125:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37132:8:165","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":74506,"src":"37125:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37144:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37125:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81351,"nodeType":"IfStatement","src":"37121:295:165","trueBody":{"id":81350,"nodeType":"Block","src":"37147:269:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":81331,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"37193:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37200:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":83335,"src":"37193:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81333,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"37211:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37218:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":83344,"src":"37211:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":81329,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"37169:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37174:18:165","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":83851,"src":"37169:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":81335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37169:56:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81336,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74645,"src":"37227:24:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37227:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81328,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37161:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37161:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81339,"nodeType":"ExpressionStatement","src":"37161:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81341,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37338:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37344:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"37338:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":81343,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"37356:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37363:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83338,"src":"37356:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37338:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81346,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74647,"src":"37379:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37379:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81340,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37330:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37330:75:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81349,"nodeType":"ExpressionStatement","src":"37330:75:165"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81353,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"37529:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37536:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74514,"src":"37529:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37557:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83408,"src":"37529:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":81356,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"37565:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37572:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":83341,"src":"37565:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37529:69:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81359,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74649,"src":"37600:33:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37600:35:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81352,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37508:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37508:137:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81362,"nodeType":"ExpressionStatement","src":"37508:137:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81364,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"37664:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37671:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74514,"src":"37664:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37692:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83410,"src":"37664:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":81367,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"37705:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37712:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83338,"src":"37705:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37664:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81370,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74651,"src":"37728:22:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37728:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81363,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37656:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37656:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81373,"nodeType":"ExpressionStatement","src":"37656:97:165"},{"assignments":[81375],"declarations":[{"constant":false,"id":81375,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"37772:20:165","nodeType":"VariableDeclaration","scope":81456,"src":"37764:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37764:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81380,"initialValue":{"arguments":[{"id":81377,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"37808:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81378,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"37816:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81376,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81623,"src":"37795:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74535_storage_ptr_$_t_struct$_BatchCommitment_$83365_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37795:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37764:59:165"},{"assignments":[81382],"declarations":[{"constant":false,"id":81382,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"37841:20:165","nodeType":"VariableDeclaration","scope":81456,"src":"37833:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37833:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81387,"initialValue":{"arguments":[{"id":81384,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"37877:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81385,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"37885:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81383,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81765,"src":"37864:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74535_storage_ptr_$_t_struct$_BatchCommitment_$83365_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37864:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37833:59:165"},{"assignments":[81389],"declarations":[{"constant":false,"id":81389,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"37910:22:165","nodeType":"VariableDeclaration","scope":81456,"src":"37902:30:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37902:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81394,"initialValue":{"arguments":[{"id":81391,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"37950:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81392,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"37958:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81390,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81922,"src":"37935:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74535_storage_ptr_$_t_struct$_BatchCommitment_$83365_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37935:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37902:63:165"},{"assignments":[81396],"declarations":[{"constant":false,"id":81396,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"37983:25:165","nodeType":"VariableDeclaration","scope":81456,"src":"37975:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37975:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81401,"initialValue":{"arguments":[{"id":81398,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"38029:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81399,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"38037:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81397,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82068,"src":"38011:17:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74535_storage_ptr_$_t_struct$_BatchCommitment_$83365_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38011:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37975:69:165"},{"assignments":[81403],"declarations":[{"constant":false,"id":81403,"mutability":"mutable","name":"_batchHash","nameLocation":"38063:10:165","nodeType":"VariableDeclaration","scope":81456,"src":"38055:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38055:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81419,"initialValue":{"arguments":[{"expression":{"id":81406,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"38114:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38121:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":83335,"src":"38114:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81408,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"38144:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38151:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83338,"src":"38144:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":81410,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"38179:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38186:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":83341,"src":"38179:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81412,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"38226:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38233:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":83344,"src":"38226:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81414,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81375,"src":"38253:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81415,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81382,"src":"38287:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81416,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81389,"src":"38321:22:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81417,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81396,"src":"38357: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":81404,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"38076:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38081:19:165","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83695,"src":"38076: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":81418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38076:316:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38055:337:165"},{"expression":{"id":81426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81420,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"38403:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38410:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74514,"src":"38403:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38431:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83408,"src":"38403:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81425,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81403,"src":"38438:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38403:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81427,"nodeType":"ExpressionStatement","src":"38403:45:165"},{"expression":{"id":81435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81428,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"38458:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38465:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74514,"src":"38458:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83411_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38486:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83410,"src":"38458:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81433,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"38498:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38505:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83338,"src":"38498:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"38458:61:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":81436,"nodeType":"ExpressionStatement","src":"38458:61:165"},{"eventCall":{"arguments":[{"id":81438,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81403,"src":"38550:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81437,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74540,"src":"38535:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38535:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81440,"nodeType":"EmitStatement","src":"38530:31:165"},{"expression":{"arguments":[{"arguments":[{"id":81444,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81307,"src":"38636:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81445,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79573,"src":"38644:17:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81446,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81403,"src":"38663:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81447,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81297,"src":"38675:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"}},{"id":81448,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81300,"src":"38691:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":81449,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"38704:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38711:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83338,"src":"38704:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$83576","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":81442,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"38593:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38598:20:165","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":84137,"src":"38593:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74535_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$83576_$_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":81451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38593:146:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81452,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74679,"src":"38753:27:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38753:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81441,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38572:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38572:220:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81455,"nodeType":"ExpressionStatement","src":"38572:220:165"}]},"baseFunctions":[75029],"documentation":{"id":81291,"nodeType":"StructuredDocumentation","src":"36186:457:165","text":" @dev Commits new batch of changes to `Router` state.\n `CodeGotValidated` event is emitted for each code in commitment.\n `AnnouncesCommitted` 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":"f2019bfe","implemented":true,"kind":"function","modifiers":[{"id":81303,"kind":"modifierInvocation","modifierName":{"id":81302,"name":"nonReentrant","nameLocations":["36811:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":43886,"src":"36811:12:165"},"nodeType":"ModifierInvocation","src":"36811:12:165"}],"name":"commitBatch","nameLocation":"36657:11:165","parameters":{"id":81301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81294,"mutability":"mutable","name":"_batch","nameLocation":"36708:6:165","nodeType":"VariableDeclaration","scope":81457,"src":"36678:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81293,"nodeType":"UserDefinedTypeName","pathNode":{"id":81292,"name":"Gear.BatchCommitment","nameLocations":["36678:4:165","36683:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83365,"src":"36678:20:165"},"referencedDeclaration":83365,"src":"36678:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":81297,"mutability":"mutable","name":"_signatureType","nameLocation":"36743:14:165","nodeType":"VariableDeclaration","scope":81457,"src":"36724:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"},"typeName":{"id":81296,"nodeType":"UserDefinedTypeName","pathNode":{"id":81295,"name":"Gear.SignatureType","nameLocations":["36724:4:165","36729:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":83576,"src":"36724:18:165"},"referencedDeclaration":83576,"src":"36724:18:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83576","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":81300,"mutability":"mutable","name":"_signatures","nameLocation":"36784:11:165","nodeType":"VariableDeclaration","scope":81457,"src":"36767:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":81298,"name":"bytes","nodeType":"ElementaryTypeName","src":"36767:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":81299,"nodeType":"ArrayTypeName","src":"36767:7:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"36668:133:165"},"returnParameters":{"id":81304,"nodeType":"ParameterList","parameters":[],"src":"36824:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81560,"nodeType":"FunctionDefinition","src":"38843:934:165","nodes":[],"body":{"id":81559,"nodeType":"Block","src":"38957:820:165","nodes":[],"statements":[{"assignments":[81473],"declarations":[{"constant":false,"id":81473,"mutability":"mutable","name":"router","nameLocation":"38983:6:165","nodeType":"VariableDeclaration","scope":81559,"src":"38967:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81472,"nodeType":"UserDefinedTypeName","pathNode":{"id":81471,"name":"Storage","nameLocations":["38967:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"38967:7:165"},"referencedDeclaration":74535,"src":"38967:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81476,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81474,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"38992:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38992:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"38967:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81478,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81473,"src":"39019:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39026:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"39019:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39039:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83420,"src":"39019:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39055: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":81482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39047:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39047:7:165","typeDescriptions":{}}},"id":81484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39047:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39019:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81486,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74607,"src":"39059:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39059:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81477,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39011:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39011:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81489,"nodeType":"ExpressionStatement","src":"39011:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"},"id":81499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81491,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81473,"src":"39112:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39119:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"39112:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39132:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"39112:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81495,"indexExpression":{"id":81494,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"39138:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39112:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81496,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"39150:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39155:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83405,"src":"39150:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83405_$","typeString":"type(enum Gear.CodeState)"}},"id":81498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39165:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83404,"src":"39150:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"src":"39112:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81500,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74641,"src":"39176:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39176:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81490,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39104:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39104:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81503,"nodeType":"ExpressionStatement","src":"39104:91:165"},{"assignments":[81505],"declarations":[{"constant":false,"id":81505,"mutability":"mutable","name":"salt","nameLocation":"39364:4:165","nodeType":"VariableDeclaration","scope":81559,"src":"39356:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39356:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81511,"initialValue":{"arguments":[{"id":81508,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"39406:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81509,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81461,"src":"39415:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81506,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"39371:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39378:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41482,"src":"39371:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":81510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39371:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39356:65:165"},{"assignments":[81513],"declarations":[{"constant":false,"id":81513,"mutability":"mutable","name":"actorId","nameLocation":"39439:7:165","nodeType":"VariableDeclaration","scope":81559,"src":"39431:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81512,"name":"address","nodeType":"ElementaryTypeName","src":"39431:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81532,"initialValue":{"condition":{"id":81514,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81463,"src":"39449:8:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":81527,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39572:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":81526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39564:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81525,"name":"address","nodeType":"ElementaryTypeName","src":"39564:7:165","typeDescriptions":{}}},"id":81528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39564:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81529,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81505,"src":"39579:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81523,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83099,"src":"39538:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$83099_$","typeString":"type(library Clones)"}},"id":81524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39545:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82868,"src":"39538:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39538:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"39449:135:165","trueExpression":{"arguments":[{"arguments":[{"id":81519,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39511:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82413","typeString":"contract Router"}],"id":81518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39503:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81517,"name":"address","nodeType":"ElementaryTypeName","src":"39503:7:165","typeDescriptions":{}}},"id":81520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39503:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81521,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81505,"src":"39518:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81515,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83183,"src":"39472:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$83183_$","typeString":"type(library ClonesSmall)"}},"id":81516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39484:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":83121,"src":"39472:30:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39472:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"39431:153:165"},{"expression":{"id":81541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81533,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81473,"src":"39595:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39602:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"39595:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39615:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83458,"src":"39595:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":81539,"indexExpression":{"id":81536,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"39624:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"39595:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81540,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"39635:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39595:47:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81542,"nodeType":"ExpressionStatement","src":"39595:47:165"},{"expression":{"id":81548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39652:35:165","subExpression":{"expression":{"expression":{"id":81543,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81473,"src":"39652:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39659:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"39652:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"39672:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83461,"src":"39652:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81549,"nodeType":"ExpressionStatement","src":"39652:35:165"},{"eventCall":{"arguments":[{"id":81551,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"39718:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81552,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"39727:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81550,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74576,"src":"39703:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":81553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39703:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81554,"nodeType":"EmitStatement","src":"39698:37:165"},{"expression":{"components":[{"id":81555,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"39754:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81556,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81473,"src":"39763:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":81557,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39753:17:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":81470,"id":81558,"nodeType":"Return","src":"39746:24:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"38852:14:165","parameters":{"id":81464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81459,"mutability":"mutable","name":"_codeId","nameLocation":"38875:7:165","nodeType":"VariableDeclaration","scope":81560,"src":"38867:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38867:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81461,"mutability":"mutable","name":"_salt","nameLocation":"38892:5:165","nodeType":"VariableDeclaration","scope":81560,"src":"38884:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38884:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81463,"mutability":"mutable","name":"_isSmall","nameLocation":"38904:8:165","nodeType":"VariableDeclaration","scope":81560,"src":"38899:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81462,"name":"bool","nodeType":"ElementaryTypeName","src":"38899:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38866:47:165"},"returnParameters":{"id":81470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81466,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81560,"src":"38931:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81465,"name":"address","nodeType":"ElementaryTypeName","src":"38931:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81560,"src":"38940:15:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81468,"nodeType":"UserDefinedTypeName","pathNode":{"id":81467,"name":"Storage","nameLocations":["38940:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"38940:7:165"},"referencedDeclaration":74535,"src":"38940:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"38930:26:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81623,"nodeType":"FunctionDefinition","src":"39783:683:165","nodes":[],"body":{"id":81622,"nodeType":"Block","src":"39893:573:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81572,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81566,"src":"39911:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39918:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83349,"src":"39911:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83319_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39934:6:165","memberName":"length","nodeType":"MemberAccess","src":"39911:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39944:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"39911:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81577,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74653,"src":"39947:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39947:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81571,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39903:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39903:70:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81580,"nodeType":"ExpressionStatement","src":"39903:70:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81581,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81566,"src":"39988:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39995:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83349,"src":"39988:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83319_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40011:6:165","memberName":"length","nodeType":"MemberAccess","src":"39988:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40021:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"39988:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81591,"nodeType":"IfStatement","src":"39984:177:165","trueBody":{"id":81590,"nodeType":"Block","src":"40024:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40147:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81586,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"40137:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40137:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81570,"id":81589,"nodeType":"Return","src":"40130:20:165"}]}},{"assignments":[81596],"declarations":[{"constant":false,"id":81596,"mutability":"mutable","name":"_commitment","nameLocation":"40201:11:165","nodeType":"VariableDeclaration","scope":81622,"src":"40171:41:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83319_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":81595,"nodeType":"UserDefinedTypeName","pathNode":{"id":81594,"name":"Gear.ChainCommitment","nameLocations":["40171:4:165","40176:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83319,"src":"40171:20:165"},"referencedDeclaration":83319,"src":"40171:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83319_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":81601,"initialValue":{"baseExpression":{"expression":{"id":81597,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81566,"src":"40215:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40222:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83349,"src":"40215:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83319_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81600,"indexExpression":{"hexValue":"30","id":81599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40238: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":"40215:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83319_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"40171:69:165"},{"assignments":[81603],"declarations":[{"constant":false,"id":81603,"mutability":"mutable","name":"_transitionsHash","nameLocation":"40259:16:165","nodeType":"VariableDeclaration","scope":81622,"src":"40251:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81602,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40251:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81609,"initialValue":{"arguments":[{"id":81605,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81563,"src":"40297:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81606,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81596,"src":"40305:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83319_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40317:11:165","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":83315,"src":"40305:23:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83510_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83510_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":81604,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82188,"src":"40278:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74535_storage_ptr_$_t_array$_t_struct$_StateTransition_$83510_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":81608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40278:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"40251:78:165"},{"eventCall":{"arguments":[{"expression":{"id":81611,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81596,"src":"40364:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83319_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40376:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":83318,"src":"40364:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81610,"name":"AnnouncesCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74545,"src":"40345:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40345:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81614,"nodeType":"EmitStatement","src":"40340:41:165"},{"expression":{"arguments":[{"id":81617,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81603,"src":"40424:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81618,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81596,"src":"40442:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83319_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40454:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":83318,"src":"40442:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81615,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"40399:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40404:19:165","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83593,"src":"40399:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":81620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40399:60:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81570,"id":81621,"nodeType":"Return","src":"40392:67:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"39792:12:165","parameters":{"id":81567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81563,"mutability":"mutable","name":"router","nameLocation":"39821:6:165","nodeType":"VariableDeclaration","scope":81623,"src":"39805:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81562,"nodeType":"UserDefinedTypeName","pathNode":{"id":81561,"name":"Storage","nameLocations":["39805:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"39805:7:165"},"referencedDeclaration":74535,"src":"39805:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81566,"mutability":"mutable","name":"_batch","nameLocation":"39859:6:165","nodeType":"VariableDeclaration","scope":81623,"src":"39829:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81565,"nodeType":"UserDefinedTypeName","pathNode":{"id":81564,"name":"Gear.BatchCommitment","nameLocations":["39829:4:165","39834:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83365,"src":"39829:20:165"},"referencedDeclaration":83365,"src":"39829:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"39804:62:165"},"returnParameters":{"id":81570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81623,"src":"39884:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81568,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39884:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39883:9:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81765,"nodeType":"FunctionDefinition","src":"40472:1402:165","nodes":[],"body":{"id":81764,"nodeType":"Block","src":"40582:1292:165","nodes":[],"statements":[{"assignments":[81635],"declarations":[{"constant":false,"id":81635,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"40600:18:165","nodeType":"VariableDeclaration","scope":81764,"src":"40592:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81634,"name":"uint256","nodeType":"ElementaryTypeName","src":"40592:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81639,"initialValue":{"expression":{"expression":{"id":81636,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81629,"src":"40621:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40628:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83354,"src":"40621:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83309_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40644:6:165","memberName":"length","nodeType":"MemberAccess","src":"40621:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40592:58:165"},{"assignments":[81641],"declarations":[{"constant":false,"id":81641,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"40668:23:165","nodeType":"VariableDeclaration","scope":81764,"src":"40660:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81640,"name":"uint256","nodeType":"ElementaryTypeName","src":"40660:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81645,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81642,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81635,"src":"40694:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40715:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"40694:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40660:57:165"},{"assignments":[81647],"declarations":[{"constant":false,"id":81647,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"40735:18:165","nodeType":"VariableDeclaration","scope":81764,"src":"40727:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81646,"name":"uint256","nodeType":"ElementaryTypeName","src":"40727:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81652,"initialValue":{"arguments":[{"id":81650,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81641,"src":"40772:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81648,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"40756:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40763:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"40756:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40756:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40727:69:165"},{"assignments":[81654],"declarations":[{"constant":false,"id":81654,"mutability":"mutable","name":"offset","nameLocation":"40814:6:165","nodeType":"VariableDeclaration","scope":81764,"src":"40806:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81653,"name":"uint256","nodeType":"ElementaryTypeName","src":"40806:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81656,"initialValue":{"hexValue":"30","id":81655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40823:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40806:18:165"},{"body":{"id":81755,"nodeType":"Block","src":"40884:884:165","statements":[{"assignments":[81671],"declarations":[{"constant":false,"id":81671,"mutability":"mutable","name":"_commitment","nameLocation":"40927:11:165","nodeType":"VariableDeclaration","scope":81755,"src":"40898:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":81670,"nodeType":"UserDefinedTypeName","pathNode":{"id":81669,"name":"Gear.CodeCommitment","nameLocations":["40898:4:165","40903:14:165"],"nodeType":"IdentifierPath","referencedDeclaration":83309,"src":"40898:19:165"},"referencedDeclaration":83309,"src":"40898:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":81676,"initialValue":{"baseExpression":{"expression":{"id":81672,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81629,"src":"40941:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40948:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83354,"src":"40941:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83309_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81675,"indexExpression":{"id":81674,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81658,"src":"40964:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40941:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"40898:68:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"},"id":81687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81678,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81626,"src":"41006:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41013:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"41006:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41026:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"41006:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81683,"indexExpression":{"expression":{"id":81681,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81671,"src":"41032:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41044:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83305,"src":"41032:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41006:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81684,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"41051:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41056:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83405,"src":"41051:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83405_$","typeString":"type(enum Gear.CodeState)"}},"id":81686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41066:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83402,"src":"41051:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"src":"41006:79:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81688,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74657,"src":"41103:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41103:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81677,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40981:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40981:164:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81691,"nodeType":"ExpressionStatement","src":"40981:164:165"},{"condition":{"expression":{"id":81692,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81671,"src":"41164:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41176:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":83308,"src":"41164:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81723,"nodeType":"Block","src":"41349:81:165","statements":[{"expression":{"id":81721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"41367:48:165","subExpression":{"baseExpression":{"expression":{"expression":{"id":81715,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81626,"src":"41374:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41381:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"41374:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41394:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"41374:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81720,"indexExpression":{"expression":{"id":81718,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81671,"src":"41400:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41412:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83305,"src":"41400:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41374:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81722,"nodeType":"ExpressionStatement","src":"41367:48:165"}]},"id":81724,"nodeType":"IfStatement","src":"41160:270:165","trueBody":{"id":81714,"nodeType":"Block","src":"41183:160:165","statements":[{"expression":{"id":81705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81694,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81626,"src":"41201:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41208:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"41201:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41221:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83453,"src":"41201:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83405_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81701,"indexExpression":{"expression":{"id":81697,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81671,"src":"41227:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41239:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83305,"src":"41227:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41201:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":81702,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"41245:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41250:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83405,"src":"41245:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83405_$","typeString":"type(enum Gear.CodeState)"}},"id":81704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41260:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83404,"src":"41245:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"src":"41201:68:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83405","typeString":"enum Gear.CodeState"}},"id":81706,"nodeType":"ExpressionStatement","src":"41201:68:165"},{"expression":{"id":81712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41287:41:165","subExpression":{"expression":{"expression":{"id":81707,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81626,"src":"41287:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41294:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"41287:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41307:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83464,"src":"41287:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81713,"nodeType":"ExpressionStatement","src":"41287:41:165"}]}},{"eventCall":{"arguments":[{"expression":{"id":81726,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81671,"src":"41466:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41478:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83305,"src":"41466:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81728,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81671,"src":"41482:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41494:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":83308,"src":"41482:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81725,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74552,"src":"41449:16:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":81730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41449:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81731,"nodeType":"EmitStatement","src":"41444:56:165"},{"assignments":[81733],"declarations":[{"constant":false,"id":81733,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"41523:18:165","nodeType":"VariableDeclaration","scope":81755,"src":"41515:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41515:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81741,"initialValue":{"arguments":[{"expression":{"id":81736,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81671,"src":"41568:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41580:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83305,"src":"41568:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81738,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81671,"src":"41584:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83309_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41596:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":83308,"src":"41584:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":81734,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"41544:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41549:18:165","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83610,"src":"41544:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":81740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41544:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41515:87:165"},{"expression":{"arguments":[{"id":81745,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81647,"src":"41642:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81746,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81654,"src":"41662:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81747,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81733,"src":"41670: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":81742,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"41616:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41623:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"41616:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41616:73:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81749,"nodeType":"ExpressionStatement","src":"41616:73:165"},{"id":81754,"nodeType":"UncheckedBlock","src":"41703:55:165","statements":[{"expression":{"id":81752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81750,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81654,"src":"41731:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41741:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"41731:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81753,"nodeType":"ExpressionStatement","src":"41731:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81661,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81658,"src":"40855:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81662,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81635,"src":"40859:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40855:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81756,"initializationExpression":{"assignments":[81658],"declarations":[{"constant":false,"id":81658,"mutability":"mutable","name":"i","nameLocation":"40848:1:165","nodeType":"VariableDeclaration","scope":81756,"src":"40840:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81657,"name":"uint256","nodeType":"ElementaryTypeName","src":"40840:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81660,"initialValue":{"hexValue":"30","id":81659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40852:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40840:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"40879:3:165","subExpression":{"id":81664,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81658,"src":"40879:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81666,"nodeType":"ExpressionStatement","src":"40879:3:165"},"nodeType":"ForStatement","src":"40835:933:165"},{"expression":{"arguments":[{"id":81759,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81647,"src":"41820:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41840:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81761,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81641,"src":"41843: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":81757,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"41785:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41792:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"41785: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":81762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41785:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81633,"id":81763,"nodeType":"Return","src":"41778:89:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"40481:12:165","parameters":{"id":81630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81626,"mutability":"mutable","name":"router","nameLocation":"40510:6:165","nodeType":"VariableDeclaration","scope":81765,"src":"40494:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81625,"nodeType":"UserDefinedTypeName","pathNode":{"id":81624,"name":"Storage","nameLocations":["40494:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"40494:7:165"},"referencedDeclaration":74535,"src":"40494:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81629,"mutability":"mutable","name":"_batch","nameLocation":"40548:6:165","nodeType":"VariableDeclaration","scope":81765,"src":"40518:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81628,"nodeType":"UserDefinedTypeName","pathNode":{"id":81627,"name":"Gear.BatchCommitment","nameLocations":["40518:4:165","40523:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83365,"src":"40518:20:165"},"referencedDeclaration":83365,"src":"40518:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"40493:62:165"},"returnParameters":{"id":81633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81765,"src":"40573:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40573:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40572:9:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81922,"nodeType":"FunctionDefinition","src":"41916:1705:165","nodes":[],"body":{"id":81921,"nodeType":"Block","src":"42028:1593:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81777,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81771,"src":"42046:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42053:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83359,"src":"42046:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83375_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42071:6:165","memberName":"length","nodeType":"MemberAccess","src":"42046:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42081:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"42046:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81782,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74659,"src":"42084:25:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42084:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42038:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42038:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81785,"nodeType":"ExpressionStatement","src":"42038:74:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81786,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81771,"src":"42127:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42134:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83359,"src":"42127:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83375_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42152:6:165","memberName":"length","nodeType":"MemberAccess","src":"42127:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42162:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42127:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81796,"nodeType":"IfStatement","src":"42123:179:165","trueBody":{"id":81795,"nodeType":"Block","src":"42165:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42288:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81791,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"42278:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42278:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81775,"id":81794,"nodeType":"Return","src":"42271:20:165"}]}},{"assignments":[81801],"declarations":[{"constant":false,"id":81801,"mutability":"mutable","name":"_commitment","nameLocation":"42344:11:165","nodeType":"VariableDeclaration","scope":81921,"src":"42312:43:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":81800,"nodeType":"UserDefinedTypeName","pathNode":{"id":81799,"name":"Gear.RewardsCommitment","nameLocations":["42312:4:165","42317:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":83375,"src":"42312:22:165"},"referencedDeclaration":83375,"src":"42312:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":81806,"initialValue":{"baseExpression":{"expression":{"id":81802,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81771,"src":"42358:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42365:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83359,"src":"42358:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83375_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81805,"indexExpression":{"hexValue":"30","id":81804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42383: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":"42358:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"42312:73:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81808,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"42404:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42416:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83374,"src":"42404:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81810,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81771,"src":"42428:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42435:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83338,"src":"42428:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42404:45:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81813,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74661,"src":"42451:35: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":"42451:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81807,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42396: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":"42396:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81816,"nodeType":"ExpressionStatement","src":"42396:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81818,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"42507:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42519:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83374,"src":"42507:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":81820,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81768,"src":"42532:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42539:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"42532:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42552:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83424,"src":"42532:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42507:54:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81824,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74663,"src":"42563:32:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42563:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81817,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42499:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42499:99:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81827,"nodeType":"ExpressionStatement","src":"42499:99:165"},{"assignments":[81829],"declarations":[{"constant":false,"id":81829,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"42617:18:165","nodeType":"VariableDeclaration","scope":81921,"src":"42609:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81828,"name":"uint256","nodeType":"ElementaryTypeName","src":"42609:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81836,"initialValue":{"arguments":[{"id":81832,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81768,"src":"42654:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81833,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"42662:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42674:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83374,"src":"42662:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81830,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"42638:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42643:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84345,"src":"42638:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42638:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42609:75:165"},{"assignments":[81838],"declarations":[{"constant":false,"id":81838,"mutability":"mutable","name":"batchEraIndex","nameLocation":"42702:13:165","nodeType":"VariableDeclaration","scope":81921,"src":"42694:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81837,"name":"uint256","nodeType":"ElementaryTypeName","src":"42694:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81845,"initialValue":{"arguments":[{"id":81841,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81768,"src":"42734:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81842,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81771,"src":"42742:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42749:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83338,"src":"42742:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81839,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"42718:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42723:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84345,"src":"42718:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42718:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42694:70:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81847,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81829,"src":"42783:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81848,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81838,"src":"42804:13:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"42783:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81850,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74665,"src":"42819:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42819:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81846,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42775:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42775:78:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81853,"nodeType":"ExpressionStatement","src":"42775:78:165"},{"assignments":[81855],"declarations":[{"constant":false,"id":81855,"mutability":"mutable","name":"_middleware","nameLocation":"42872:11:165","nodeType":"VariableDeclaration","scope":81921,"src":"42864:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81854,"name":"address","nodeType":"ElementaryTypeName","src":"42864:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81859,"initialValue":{"expression":{"expression":{"id":81856,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81768,"src":"42886:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42893:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"42886:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42907:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":83300,"src":"42886:31:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"42864:53:165"},{"assignments":[81861],"declarations":[{"constant":false,"id":81861,"mutability":"mutable","name":"success","nameLocation":"42932:7:165","nodeType":"VariableDeclaration","scope":81921,"src":"42927:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81860,"name":"bool","nodeType":"ElementaryTypeName","src":"42927:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81877,"initialValue":{"arguments":[{"id":81868,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"43010:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81869,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"43023:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43035:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83369,"src":"43023:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83381_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43045:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83378,"src":"43023:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":81872,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"43054:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43066:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83372,"src":"43054:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":81874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43074:11:165","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83388,"src":"43054:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43023: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":81863,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81768,"src":"42955:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42962:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"42955:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42976:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83297,"src":"42955:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81862,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75046,"src":"42942:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75046_$","typeString":"type(contract IWrappedVara)"}},"id":81866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42942:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75046","typeString":"contract IWrappedVara"}},"id":81867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43002:7:165","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"42942:67:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":81876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42942:144:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"42927:159:165"},{"expression":{"arguments":[{"id":81879,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81861,"src":"43104:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81880,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74667,"src":"43113:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43113:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81878,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43096:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43096:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81883,"nodeType":"ExpressionStatement","src":"43096:38:165"},{"assignments":[81885],"declarations":[{"constant":false,"id":81885,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"43153:20:165","nodeType":"VariableDeclaration","scope":81921,"src":"43145:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43145:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81900,"initialValue":{"arguments":[{"expression":{"expression":{"id":81890,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81768,"src":"43257:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43264:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74518,"src":"43257:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83301_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43278:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83297,"src":"43257:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":81893,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"43291:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43303:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83369,"src":"43291:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83381_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43313:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83378,"src":"43291:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":81896,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"43321:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43333:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83369,"src":"43321:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83381_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43343:4:165","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":83380,"src":"43321: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":81887,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"43188:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81886,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43176:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43176:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43214:25:165","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":74119,"src":"43176: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":81899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43176:185:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43145:216:165"},{"assignments":[81902],"declarations":[{"constant":false,"id":81902,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"43380:18:165","nodeType":"VariableDeclaration","scope":81921,"src":"43372:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43372:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81912,"initialValue":{"arguments":[{"expression":{"id":81907,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"43462:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43474:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83372,"src":"43462:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":81909,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"43483:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43495:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83374,"src":"43483:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83391_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":81904,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"43425:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81903,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43413:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43413:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43438:23:165","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":74130,"src":"43413:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$83391_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":81911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43413:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43372:133:165"},{"expression":{"arguments":[{"id":81915,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81885,"src":"43550:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81916,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81902,"src":"43572:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81917,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"43592:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83375_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43604:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83374,"src":"43592: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":81913,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"43523:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":81914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43528:21:165","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83632,"src":"43523: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":81919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43523:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81775,"id":81920,"nodeType":"Return","src":"43516:98:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"41925:14:165","parameters":{"id":81772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81768,"mutability":"mutable","name":"router","nameLocation":"41956:6:165","nodeType":"VariableDeclaration","scope":81922,"src":"41940:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81767,"nodeType":"UserDefinedTypeName","pathNode":{"id":81766,"name":"Storage","nameLocations":["41940:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"41940:7:165"},"referencedDeclaration":74535,"src":"41940:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81771,"mutability":"mutable","name":"_batch","nameLocation":"41994:6:165","nodeType":"VariableDeclaration","scope":81922,"src":"41964:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81770,"nodeType":"UserDefinedTypeName","pathNode":{"id":81769,"name":"Gear.BatchCommitment","nameLocations":["41964:4:165","41969:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83365,"src":"41964:20:165"},"referencedDeclaration":83365,"src":"41964:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"41939:62:165"},"returnParameters":{"id":81775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81922,"src":"42019:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81773,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42019:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"42018:9:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82068,"nodeType":"FunctionDefinition","src":"43688:1657:165","nodes":[],"body":{"id":82067,"nodeType":"Block","src":"43803:1542:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81935,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81929,"src":"43821:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43828:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83364,"src":"43821:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83331_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43849:6:165","memberName":"length","nodeType":"MemberAccess","src":"43821:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43859:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43821:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81940,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74669,"src":"43862:28:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43862:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81934,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43813:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43813:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81943,"nodeType":"ExpressionStatement","src":"43813:80:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81944,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81929,"src":"43908:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43915:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83364,"src":"43908:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83331_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43936:6:165","memberName":"length","nodeType":"MemberAccess","src":"43908:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43946:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43908:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81954,"nodeType":"IfStatement","src":"43904:182:165","trueBody":{"id":81953,"nodeType":"Block","src":"43949:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44072:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81949,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44062:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44062:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81933,"id":81952,"nodeType":"Return","src":"44055:20:165"}]}},{"assignments":[81959],"declarations":[{"constant":false,"id":81959,"mutability":"mutable","name":"_commitment","nameLocation":"44131:11:165","nodeType":"VariableDeclaration","scope":82067,"src":"44096:46:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":81958,"nodeType":"UserDefinedTypeName","pathNode":{"id":81957,"name":"Gear.ValidatorsCommitment","nameLocations":["44096:4:165","44101:20:165"],"nodeType":"IdentifierPath","referencedDeclaration":83331,"src":"44096:25:165"},"referencedDeclaration":83331,"src":"44096:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":81964,"initialValue":{"baseExpression":{"expression":{"id":81960,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81929,"src":"44145:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44152:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83364,"src":"44145:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83331_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81963,"indexExpression":{"hexValue":"30","id":81962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44173: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":"44145:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"44096:79:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81966,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81959,"src":"44194:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44206:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":83328,"src":"44194:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":81968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44217:6:165","memberName":"length","nodeType":"MemberAccess","src":"44194:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44226:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44194:33:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81971,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74671,"src":"44229:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44229:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81965,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44186:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44186:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81974,"nodeType":"ExpressionStatement","src":"44186:65:165"},{"assignments":[81976],"declarations":[{"constant":false,"id":81976,"mutability":"mutable","name":"currentEraIndex","nameLocation":"44324:15:165","nodeType":"VariableDeclaration","scope":82067,"src":"44316:23:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81975,"name":"uint256","nodeType":"ElementaryTypeName","src":"44316:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81988,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81977,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44343:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44349:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44343:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81979,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81926,"src":"44361:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44368:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"44361:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44381:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83424,"src":"44361:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"44343:47:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81983,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44342:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":81984,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81926,"src":"44394:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44401:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"44394:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44411:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83513,"src":"44394:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44342:72:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44316:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81990,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81959,"src":"44433:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44445:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83330,"src":"44433:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81992,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81976,"src":"44457:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":81993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44475:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44457:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44433:43:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81996,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74673,"src":"44478:20:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44478:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81989,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44425:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44425:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81999,"nodeType":"ExpressionStatement","src":"44425:76:165"},{"assignments":[82001],"declarations":[{"constant":false,"id":82001,"mutability":"mutable","name":"nextEraStart","nameLocation":"44520:12:165","nodeType":"VariableDeclaration","scope":82067,"src":"44512:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82000,"name":"uint256","nodeType":"ElementaryTypeName","src":"44512:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82012,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82002,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81926,"src":"44535:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44542:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"44535:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44555:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83424,"src":"44535:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82005,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81926,"src":"44567:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44574:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"44567:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44584:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83513,"src":"44567:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":82008,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81959,"src":"44590:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44602:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83330,"src":"44590:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44567:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44535:75:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44512:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82014,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44628:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44634:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44628:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82016,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82001,"src":"44647:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":82017,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81926,"src":"44662:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44669:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74530,"src":"44662:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83518_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44679:8:165","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":83515,"src":"44662:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44647:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44628:59:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82022,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74675,"src":"44689:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44689:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82013,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44620:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44620:90:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82025,"nodeType":"ExpressionStatement","src":"44620:90:165"},{"assignments":[82030],"declarations":[{"constant":false,"id":82030,"mutability":"mutable","name":"_validators","nameLocation":"44792:11:165","nodeType":"VariableDeclaration","scope":82067,"src":"44768:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82029,"nodeType":"UserDefinedTypeName","pathNode":{"id":82028,"name":"Gear.Validators","nameLocations":["44768:4:165","44773:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"44768:15:165"},"referencedDeclaration":83278,"src":"44768:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":82035,"initialValue":{"arguments":[{"id":82033,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81926,"src":"44833:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82031,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"44806:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":82032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44811:21:165","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":84181,"src":"44806:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74535_storage_ptr_$returns$_t_struct$_Validators_$83278_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44806:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"44768:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82037,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82030,"src":"44858:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44870:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83277,"src":"44858:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82039,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44889:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44895:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44889:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44858:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82042,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74677,"src":"44906:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44906:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82036,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44850:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44850:85:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82045,"nodeType":"ExpressionStatement","src":"44850:85:165"},{"expression":{"arguments":[{"id":82047,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82030,"src":"45028:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":82048,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81959,"src":"45053:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45065:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83323,"src":"45053:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":82050,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81959,"src":"45098:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45110:33:165","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":83325,"src":"45098:45:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":82052,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81959,"src":"45157:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45169:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":83328,"src":"45157:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":82054,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82001,"src":"45193:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_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":82046,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82300,"src":"44998:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$83278_storage_ptr_$_t_struct$_AggregatedPublicKey_$83257_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":82055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44998:217:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82056,"nodeType":"ExpressionStatement","src":"44998:217:165"},{"eventCall":{"arguments":[{"expression":{"id":82058,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81959,"src":"45257:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45269:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83330,"src":"45257:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82057,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74562,"src":"45231:25:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":82060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45231:47:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82061,"nodeType":"EmitStatement","src":"45226:52:165"},{"expression":{"arguments":[{"id":82064,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81959,"src":"45326:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83331_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":82062,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"45296:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84435_$","typeString":"type(library Gear)"}},"id":82063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45301:24:165","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83658,"src":"45296:29:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$83331_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":82065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45296:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81933,"id":82066,"nodeType":"Return","src":"45289:49:165"}]},"documentation":{"id":81923,"nodeType":"StructuredDocumentation","src":"43627:56:165","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"43697:17:165","parameters":{"id":81930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81926,"mutability":"mutable","name":"router","nameLocation":"43731:6:165","nodeType":"VariableDeclaration","scope":82068,"src":"43715:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81925,"nodeType":"UserDefinedTypeName","pathNode":{"id":81924,"name":"Storage","nameLocations":["43715:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"43715:7:165"},"referencedDeclaration":74535,"src":"43715:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81929,"mutability":"mutable","name":"_batch","nameLocation":"43769:6:165","nodeType":"VariableDeclaration","scope":82068,"src":"43739:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81928,"nodeType":"UserDefinedTypeName","pathNode":{"id":81927,"name":"Gear.BatchCommitment","nameLocations":["43739:4:165","43744:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83365,"src":"43739:20:165"},"referencedDeclaration":83365,"src":"43739:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83365_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43714:62:165"},"returnParameters":{"id":81933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82068,"src":"43794:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43794:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43793:9:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82188,"nodeType":"FunctionDefinition","src":"45351:1168:165","nodes":[],"body":{"id":82187,"nodeType":"Block","src":"45495:1024:165","nodes":[],"statements":[{"assignments":[82081],"declarations":[{"constant":false,"id":82081,"mutability":"mutable","name":"transitionsLen","nameLocation":"45513:14:165","nodeType":"VariableDeclaration","scope":82187,"src":"45505:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82080,"name":"uint256","nodeType":"ElementaryTypeName","src":"45505:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82084,"initialValue":{"expression":{"id":82082,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82075,"src":"45530:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83510_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45543:6:165","memberName":"length","nodeType":"MemberAccess","src":"45530:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45505:44:165"},{"assignments":[82086],"declarations":[{"constant":false,"id":82086,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"45567:19:165","nodeType":"VariableDeclaration","scope":82187,"src":"45559:27:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82085,"name":"uint256","nodeType":"ElementaryTypeName","src":"45559:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82090,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82087,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82081,"src":"45589:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":82088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45606:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"45589:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45559:49:165"},{"assignments":[82092],"declarations":[{"constant":false,"id":82092,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"45626:23:165","nodeType":"VariableDeclaration","scope":82187,"src":"45618:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82091,"name":"uint256","nodeType":"ElementaryTypeName","src":"45618:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82097,"initialValue":{"arguments":[{"id":82095,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82086,"src":"45668:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82093,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"45652:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45659:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"45652:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":82096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45652:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45618:70:165"},{"assignments":[82099],"declarations":[{"constant":false,"id":82099,"mutability":"mutable","name":"offset","nameLocation":"45706:6:165","nodeType":"VariableDeclaration","scope":82187,"src":"45698:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82098,"name":"uint256","nodeType":"ElementaryTypeName","src":"45698:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82101,"initialValue":{"hexValue":"30","id":82100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45715:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45698:18:165"},{"body":{"id":82178,"nodeType":"Block","src":"45772:640:165","statements":[{"assignments":[82116],"declarations":[{"constant":false,"id":82116,"mutability":"mutable","name":"transition","nameLocation":"45816:10:165","nodeType":"VariableDeclaration","scope":82178,"src":"45786:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":82115,"nodeType":"UserDefinedTypeName","pathNode":{"id":82114,"name":"Gear.StateTransition","nameLocations":["45786:4:165","45791:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83510,"src":"45786:20:165"},"referencedDeclaration":83510,"src":"45786:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":82120,"initialValue":{"baseExpression":{"id":82117,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82075,"src":"45829:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83510_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82119,"indexExpression":{"id":82118,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82103,"src":"45842:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45829:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"45786:58:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82122,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82071,"src":"45867:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45874:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"45867:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45887:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83458,"src":"45867:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82127,"indexExpression":{"expression":{"id":82125,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82116,"src":"45896:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45907:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83486,"src":"45896:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45867:48:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45919:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45867:53:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82130,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74655,"src":"45922:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45922:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82121,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45859:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45859:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82133,"nodeType":"ExpressionStatement","src":"45859:80:165"},{"assignments":[82135],"declarations":[{"constant":false,"id":82135,"mutability":"mutable","name":"value","nameLocation":"45962:5:165","nodeType":"VariableDeclaration","scope":82178,"src":"45954:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82134,"name":"uint128","nodeType":"ElementaryTypeName","src":"45954:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82137,"initialValue":{"hexValue":"30","id":82136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45970:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45954:17:165"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":82145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82138,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82116,"src":"45990:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46001:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83498,"src":"45990:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46019:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45990:30:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":82144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"46024:38:165","subExpression":{"expression":{"id":82142,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82116,"src":"46025:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46036:26:165","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83501,"src":"46025:37:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"45990:72:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82152,"nodeType":"IfStatement","src":"45986:144:165","trueBody":{"id":82151,"nodeType":"Block","src":"46064:66:165","statements":[{"expression":{"id":82149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82146,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82135,"src":"46082:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82147,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82116,"src":"46090:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46101:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83498,"src":"46090:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"46082:33:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82150,"nodeType":"ExpressionStatement","src":"46082:33:165"}]}},{"assignments":[82154],"declarations":[{"constant":false,"id":82154,"mutability":"mutable","name":"transitionHash","nameLocation":"46152:14:165","nodeType":"VariableDeclaration","scope":82178,"src":"46144:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46144:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82164,"initialValue":{"arguments":[{"id":82162,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82116,"src":"46234:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":82156,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82116,"src":"46177:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46188:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83486,"src":"46177:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82155,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74440,"src":"46169:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74440_$","typeString":"type(contract IMirror)"}},"id":82158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46169:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74440","typeString":"contract IMirror"}},"id":82159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46197:22:165","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":74439,"src":"46169:50:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83510_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":82160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82135,"src":"46227:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"46169:64:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83510_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46169:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46144:101:165"},{"expression":{"arguments":[{"id":82168,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82092,"src":"46285:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82169,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82099,"src":"46310:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82170,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82154,"src":"46318: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":82165,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"46259:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46266:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"46259:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":82171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46259:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82172,"nodeType":"ExpressionStatement","src":"46259:74:165"},{"id":82177,"nodeType":"UncheckedBlock","src":"46347:55:165","statements":[{"expression":{"id":82175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82173,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82099,"src":"46375:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":82174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46385:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"46375:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82176,"nodeType":"ExpressionStatement","src":"46375:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82103,"src":"45747:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":82107,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82081,"src":"45751:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45747:18:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82179,"initializationExpression":{"assignments":[82103],"declarations":[{"constant":false,"id":82103,"mutability":"mutable","name":"i","nameLocation":"45740:1:165","nodeType":"VariableDeclaration","scope":82179,"src":"45732:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82102,"name":"uint256","nodeType":"ElementaryTypeName","src":"45732:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82105,"initialValue":{"hexValue":"30","id":82104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45744:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45732:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"45767:3:165","subExpression":{"id":82109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82103,"src":"45767:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82111,"nodeType":"ExpressionStatement","src":"45767:3:165"},"nodeType":"ForStatement","src":"45727:685:165"},{"expression":{"arguments":[{"id":82182,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82092,"src":"46464:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":82183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46489:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":82184,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82086,"src":"46492: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":82180,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"46429:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":82181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46436:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"46429: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":82185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46429:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82079,"id":82186,"nodeType":"Return","src":"46422:90:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"45360:18:165","parameters":{"id":82076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82071,"mutability":"mutable","name":"router","nameLocation":"45395:6:165","nodeType":"VariableDeclaration","scope":82188,"src":"45379:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82070,"nodeType":"UserDefinedTypeName","pathNode":{"id":82069,"name":"Storage","nameLocations":["45379:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"45379:7:165"},"referencedDeclaration":74535,"src":"45379:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":82075,"mutability":"mutable","name":"_transitions","nameLocation":"45435:12:165","nodeType":"VariableDeclaration","scope":82188,"src":"45403:44:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83510_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82073,"nodeType":"UserDefinedTypeName","pathNode":{"id":82072,"name":"Gear.StateTransition","nameLocations":["45403:4:165","45408:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83510,"src":"45403:20:165"},"referencedDeclaration":83510,"src":"45403:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83510_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82074,"nodeType":"ArrayTypeName","src":"45403:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83510_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"45378:70:165"},"returnParameters":{"id":82079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82188,"src":"45482:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45482:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"45481:9:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82300,"nodeType":"FunctionDefinition","src":"46525:1421:165","nodes":[],"body":{"id":82299,"nodeType":"Block","src":"46808:1138:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":82207,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82194,"src":"47198:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47222:1:165","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":83254,"src":"47198:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":82209,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82194,"src":"47225:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47249:1:165","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":83256,"src":"47225:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82205,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"47175:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":82206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47181:16:165","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":40634,"src":"47175:22:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":82211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47175:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82212,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74592,"src":"47265:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47265:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82204,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47154:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47154:154:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82215,"nodeType":"ExpressionStatement","src":"47154:154:165"},{"expression":{"id":82220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82216,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82191,"src":"47318:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47330:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"47318:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82219,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82194,"src":"47352:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"47318:57:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":82221,"nodeType":"ExpressionStatement","src":"47318:57:165"},{"expression":{"id":82229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82222,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82191,"src":"47385:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47397:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":83265,"src":"47385:52:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82227,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82196,"src":"47454:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":82225,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84891,"src":"47440:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84891_$","typeString":"type(library SSTORE2)"}},"id":82226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47448:5:165","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":84747,"src":"47440:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":82228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47440:49:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47385:104:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82230,"nodeType":"ExpressionStatement","src":"47385:104:165"},{"body":{"id":82258,"nodeType":"Block","src":"47553:114:165","statements":[{"assignments":[82244],"declarations":[{"constant":false,"id":82244,"mutability":"mutable","name":"_validator","nameLocation":"47575:10:165","nodeType":"VariableDeclaration","scope":82258,"src":"47567:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82243,"name":"address","nodeType":"ElementaryTypeName","src":"47567:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82249,"initialValue":{"baseExpression":{"expression":{"id":82245,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82191,"src":"47588:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47600:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83274,"src":"47588:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82248,"indexExpression":{"id":82247,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82232,"src":"47605:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47588:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47567:40:165"},{"expression":{"id":82256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82250,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82191,"src":"47621:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47633:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83270,"src":"47621:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82254,"indexExpression":{"id":82252,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82244,"src":"47637:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"47621:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":82255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"47651:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"47621:35:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82257,"nodeType":"ExpressionStatement","src":"47621:35:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82232,"src":"47519:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":82236,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82191,"src":"47523:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47535:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83274,"src":"47523:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47540:6:165","memberName":"length","nodeType":"MemberAccess","src":"47523:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47519:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82259,"initializationExpression":{"assignments":[82232],"declarations":[{"constant":false,"id":82232,"mutability":"mutable","name":"i","nameLocation":"47512:1:165","nodeType":"VariableDeclaration","scope":82259,"src":"47504:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82231,"name":"uint256","nodeType":"ElementaryTypeName","src":"47504:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82234,"initialValue":{"hexValue":"30","id":82233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47516:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47504:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"47548:3:165","subExpression":{"id":82240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82232,"src":"47548:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82242,"nodeType":"ExpressionStatement","src":"47548:3:165"},"nodeType":"ForStatement","src":"47499:168:165"},{"body":{"id":82285,"nodeType":"Block","src":"47728:111:165","statements":[{"assignments":[82272],"declarations":[{"constant":false,"id":82272,"mutability":"mutable","name":"_validator","nameLocation":"47750:10:165","nodeType":"VariableDeclaration","scope":82285,"src":"47742:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82271,"name":"address","nodeType":"ElementaryTypeName","src":"47742:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82276,"initialValue":{"baseExpression":{"id":82273,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82199,"src":"47763:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82275,"indexExpression":{"id":82274,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82261,"src":"47778:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47763:17:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47742:38:165"},{"expression":{"id":82283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82277,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82191,"src":"47794:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47806:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83270,"src":"47794:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82281,"indexExpression":{"id":82279,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82272,"src":"47810:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"47794:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":82282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"47824:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"47794:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82284,"nodeType":"ExpressionStatement","src":"47794:34:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82264,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82261,"src":"47696:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82265,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82199,"src":"47700:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47715:6:165","memberName":"length","nodeType":"MemberAccess","src":"47700:21:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47696:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82286,"initializationExpression":{"assignments":[82261],"declarations":[{"constant":false,"id":82261,"mutability":"mutable","name":"i","nameLocation":"47689:1:165","nodeType":"VariableDeclaration","scope":82286,"src":"47681:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82260,"name":"uint256","nodeType":"ElementaryTypeName","src":"47681:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82263,"initialValue":{"hexValue":"30","id":82262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47693:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47681:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"47723:3:165","subExpression":{"id":82268,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82261,"src":"47723:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82270,"nodeType":"ExpressionStatement","src":"47723:3:165"},"nodeType":"ForStatement","src":"47676:163:165"},{"expression":{"id":82291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82287,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82191,"src":"47848:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47860:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83274,"src":"47848:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82290,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82199,"src":"47867:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"47848:33:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82292,"nodeType":"ExpressionStatement","src":"47848:33:165"},{"expression":{"id":82297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82293,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82191,"src":"47891:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47903:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83277,"src":"47891:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82296,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"47922:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47891:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82298,"nodeType":"ExpressionStatement","src":"47891:48:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"46534:16:165","parameters":{"id":82202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82191,"mutability":"mutable","name":"_validators","nameLocation":"46584:11:165","nodeType":"VariableDeclaration","scope":82300,"src":"46560:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82190,"nodeType":"UserDefinedTypeName","pathNode":{"id":82189,"name":"Gear.Validators","nameLocations":["46560:4:165","46565:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":83278,"src":"46560:15:165"},"referencedDeclaration":83278,"src":"46560:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83278_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":82194,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"46637:23:165","nodeType":"VariableDeclaration","scope":82300,"src":"46605:55:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82193,"nodeType":"UserDefinedTypeName","pathNode":{"id":82192,"name":"Gear.AggregatedPublicKey","nameLocations":["46605:4:165","46610:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83257,"src":"46605:24:165"},"referencedDeclaration":83257,"src":"46605:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83257_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82196,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"46683:34:165","nodeType":"VariableDeclaration","scope":82300,"src":"46670:47:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82195,"name":"bytes","nodeType":"ElementaryTypeName","src":"46670:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82199,"mutability":"mutable","name":"_newValidators","nameLocation":"46744:14:165","nodeType":"VariableDeclaration","scope":82300,"src":"46727:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82197,"name":"address","nodeType":"ElementaryTypeName","src":"46727:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82198,"nodeType":"ArrayTypeName","src":"46727:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82201,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"46776:17:165","nodeType":"VariableDeclaration","scope":82300,"src":"46768:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82200,"name":"uint256","nodeType":"ElementaryTypeName","src":"46768:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46550:249:165"},"returnParameters":{"id":82203,"nodeType":"ParameterList","parameters":[],"src":"46808:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82313,"nodeType":"FunctionDefinition","src":"47952:192:165","nodes":[],"body":{"id":82312,"nodeType":"Block","src":"48017:127:165","nodes":[],"statements":[{"assignments":[82307],"declarations":[{"constant":false,"id":82307,"mutability":"mutable","name":"slot","nameLocation":"48035:4:165","nodeType":"VariableDeclaration","scope":82312,"src":"48027:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82306,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48027:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82310,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82308,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82325,"src":"48042:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48042:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48027:32:165"},{"AST":{"nativeSrc":"48095:43:165","nodeType":"YulBlock","src":"48095:43:165","statements":[{"nativeSrc":"48109:19:165","nodeType":"YulAssignment","src":"48109:19:165","value":{"name":"slot","nativeSrc":"48124:4:165","nodeType":"YulIdentifier","src":"48124:4:165"},"variableNames":[{"name":"router.slot","nativeSrc":"48109:11:165","nodeType":"YulIdentifier","src":"48109:11:165"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82304,"isOffset":false,"isSlot":true,"src":"48109:11:165","suffix":"slot","valueSize":1},{"declaration":82307,"isOffset":false,"isSlot":false,"src":"48124:4:165","valueSize":1}],"flags":["memory-safe"],"id":82311,"nodeType":"InlineAssembly","src":"48070:68:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"47961:7:165","parameters":{"id":82301,"nodeType":"ParameterList","parameters":[],"src":"47968:2:165"},"returnParameters":{"id":82305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82304,"mutability":"mutable","name":"router","nameLocation":"48009:6:165","nodeType":"VariableDeclaration","scope":82313,"src":"47993:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82303,"nodeType":"UserDefinedTypeName","pathNode":{"id":82302,"name":"Storage","nameLocations":["47993:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"47993:7:165"},"referencedDeclaration":74535,"src":"47993:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"47992:24:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82325,"nodeType":"FunctionDefinition","src":"48150:128:165","nodes":[],"body":{"id":82324,"nodeType":"Block","src":"48208:70:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82320,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79570,"src":"48252:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82318,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48225:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48237:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48225: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":82321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48225:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48266:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48225:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82317,"id":82323,"nodeType":"Return","src":"48218:53:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"48159:15:165","parameters":{"id":82314,"nodeType":"ParameterList","parameters":[],"src":"48174:2:165"},"returnParameters":{"id":82317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82325,"src":"48199:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48199:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48198:9:165"},"scope":82413,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82353,"nodeType":"FunctionDefinition","src":"48284:240:165","nodes":[],"body":{"id":82352,"nodeType":"Block","src":"48352:172:165","nodes":[],"statements":[{"assignments":[82333],"declarations":[{"constant":false,"id":82333,"mutability":"mutable","name":"slot","nameLocation":"48370:4:165","nodeType":"VariableDeclaration","scope":82352,"src":"48362:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48362:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82338,"initialValue":{"arguments":[{"id":82336,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82327,"src":"48404:9:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82334,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"48377:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":82335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48392:11:165","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"48377:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48377:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48362:52:165"},{"expression":{"id":82346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82342,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79570,"src":"48451:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82339,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48424:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48436:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48424: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":82343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48424:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48465:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48424:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82345,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82333,"src":"48473:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"48424:53:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82347,"nodeType":"ExpressionStatement","src":"48424:53:165"},{"eventCall":{"arguments":[{"id":82349,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82333,"src":"48512:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":82348,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74581,"src":"48493:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":82350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48493:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82351,"nodeType":"EmitStatement","src":"48488:29:165"}]},"implemented":true,"kind":"function","modifiers":[{"id":82330,"kind":"modifierInvocation","modifierName":{"id":82329,"name":"onlyOwner","nameLocations":["48342:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"48342:9:165"},"nodeType":"ModifierInvocation","src":"48342:9:165"}],"name":"_setStorageSlot","nameLocation":"48293:15:165","parameters":{"id":82328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82327,"mutability":"mutable","name":"namespace","nameLocation":"48323:9:165","nodeType":"VariableDeclaration","scope":82353,"src":"48309:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82326,"name":"string","nodeType":"ElementaryTypeName","src":"48309:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48308:25:165"},"returnParameters":{"id":82331,"nodeType":"ParameterList","parameters":[],"src":"48352:0:165"},"scope":82413,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82412,"nodeType":"FunctionDefinition","src":"48672:396:165","nodes":[],"body":{"id":82411,"nodeType":"Block","src":"48713:355:165","nodes":[],"statements":[{"assignments":[82361],"declarations":[{"constant":false,"id":82361,"mutability":"mutable","name":"router","nameLocation":"48739:6:165","nodeType":"VariableDeclaration","scope":82411,"src":"48723:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82360,"nodeType":"UserDefinedTypeName","pathNode":{"id":82359,"name":"Storage","nameLocations":["48723:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74535,"src":"48723:7:165"},"referencedDeclaration":74535,"src":"48723:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82362,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"48748:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74535_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48748:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"48723:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82366,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82361,"src":"48775:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48782:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74510,"src":"48775:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83425_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48795:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83420,"src":"48775:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":82371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48811: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":82370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"48803:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48803:7:165","typeDescriptions":{}}},"id":82372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48803:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"48775:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82374,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74607,"src":"48815:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48815:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82365,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48767:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48767:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82377,"nodeType":"ExpressionStatement","src":"48767:82:165"},{"assignments":[82379],"declarations":[{"constant":false,"id":82379,"mutability":"mutable","name":"value","nameLocation":"48868:5:165","nodeType":"VariableDeclaration","scope":82411,"src":"48860:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82378,"name":"uint128","nodeType":"ElementaryTypeName","src":"48860:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82385,"initialValue":{"arguments":[{"expression":{"id":82382,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"48884:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48888:5:165","memberName":"value","nodeType":"MemberAccess","src":"48884:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"48876:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":82380,"name":"uint128","nodeType":"ElementaryTypeName","src":"48876:7:165","typeDescriptions":{}}},"id":82384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48876:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"48860:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82387,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82379,"src":"48912:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48920:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"48912:9:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82390,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74681,"src":"48923:17:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48923:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82386,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48904:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48904:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82393,"nodeType":"ExpressionStatement","src":"48904:39:165"},{"assignments":[82395],"declarations":[{"constant":false,"id":82395,"mutability":"mutable","name":"actorId","nameLocation":"48962:7:165","nodeType":"VariableDeclaration","scope":82411,"src":"48954:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82394,"name":"address","nodeType":"ElementaryTypeName","src":"48954:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82398,"initialValue":{"expression":{"id":82396,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"48972:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48976:6:165","memberName":"sender","nodeType":"MemberAccess","src":"48972:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"48954:28:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82400,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82361,"src":"49000:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74535_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49007:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74534,"src":"49000:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83474_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49020:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83458,"src":"49000:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82404,"indexExpression":{"id":82403,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82395,"src":"49029:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49000:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49041:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49000:42:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82407,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74655,"src":"49044:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49044:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82399,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48992:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48992:69:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82410,"nodeType":"ExpressionStatement","src":"48992:69:165"}]},"documentation":{"id":82354,"nodeType":"StructuredDocumentation","src":"48530:137:165","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":82357,"kind":"modifierInvocation","modifierName":{"id":82356,"name":"whenNotPaused","nameLocations":["48699:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"48699:13:165"},"nodeType":"ModifierInvocation","src":"48699:13:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82355,"nodeType":"ParameterList","parameters":[],"src":"48679:2:165"},"returnParameters":{"id":82358,"nodeType":"ParameterList","parameters":[],"src":"48713:0:165"},"scope":82413,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":79554,"name":"IRouter","nameLocations":["1576:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":75030,"src":"1576:7:165"},"id":79555,"nodeType":"InheritanceSpecifier","src":"1576:7:165"},{"baseName":{"id":79556,"name":"OwnableUpgradeable","nameLocations":["1589:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1589:18:165"},"id":79557,"nodeType":"InheritanceSpecifier","src":"1589:18:165"},{"baseName":{"id":79558,"name":"PausableUpgradeable","nameLocations":["1613:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"1613:19:165"},"id":79559,"nodeType":"InheritanceSpecifier","src":"1613:19:165"},{"baseName":{"id":79560,"name":"EIP712Upgradeable","nameLocations":["1638:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":44416,"src":"1638:17:165"},"id":79561,"nodeType":"InheritanceSpecifier","src":"1638:17:165"},{"baseName":{"id":79562,"name":"NoncesUpgradeable","nameLocations":["1661:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":43698,"src":"1661:17:165"},"id":79563,"nodeType":"InheritanceSpecifier","src":"1661:17:165"},{"baseName":{"id":79564,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1684:35:165"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"1684:35:165"},"id":79565,"nodeType":"InheritanceSpecifier","src":"1684:35:165"},{"baseName":{"id":79566,"name":"UUPSUpgradeable","nameLocations":["1725:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1725:15:165"},"id":79567,"nodeType":"InheritanceSpecifier","src":"1725:15:165"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82413,46243,44833,43943,43698,44416,44823,43858,42322,43484,42590,75030],"name":"Router","nameLocation":"1562:6:165","scope":82414,"usedErrors":[42158,42163,42339,42342,43601,43737,43740,43875,45427,45440,46100,46105,47372,48774,50701,50706,50711,53880,74584,74587,74590,74592,74595,74598,74601,74604,74607,74610,74617,74626,74631,74638,74641,74643,74645,74647,74649,74651,74653,74655,74657,74659,74661,74663,74665,74667,74669,74671,74673,74675,74677,74679,74681,83233,83236,83239,83242,83245,83248,83251],"usedEvents":[42169,42347,43729,43734,44781,44803,74540,74545,74552,74557,74562,74569,74576,74581]}],"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 df62ee48058..6dde5130ca5 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":82468,"exportedSymbols":{"ERC20BurnableUpgradeable":[43269],"ERC20PermitUpgradeable":[43438],"ERC20Upgradeable":[43207],"Initializable":[42590],"OwnableUpgradeable":[42322],"UUPSUpgradeable":[46243],"WrappedVara":[82467]},"nodeType":"SourceUnit","src":"74:3441:166","nodes":[{"id":82326,"nodeType":"PragmaDirective","src":"74:24:166","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82328,"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":82468,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":82327,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82330,"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":82468,"sourceUnit":42591,"symbolAliases":[{"foreign":{"id":82329,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42590,"src":"210:13:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82332,"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":82468,"sourceUnit":43208,"symbolAliases":[{"foreign":{"id":82331,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43207,"src":"307:16:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82334,"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":82468,"sourceUnit":43270,"symbolAliases":[{"foreign":{"id":82333,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43269,"src":"415:24:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82336,"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":82468,"sourceUnit":43439,"symbolAliases":[{"foreign":{"id":82335,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43438,"src":"551:22:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82338,"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":82468,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":82337,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"678:15:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82467,"nodeType":"ContractDefinition","src":"1323:2191:166","nodes":[{"id":82354,"nodeType":"VariableDeclaration","src":"1496:51:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1520:10:166","scope":82467,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82352,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":82353,"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":82357,"nodeType":"VariableDeclaration","src":"1553:46:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1577:12:166","scope":82467,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82355,"name":"string","nodeType":"ElementaryTypeName","src":"1553:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":82356,"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":82360,"nodeType":"VariableDeclaration","src":"1605:57:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1630:20:166","scope":82467,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82358,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":82359,"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":82368,"nodeType":"FunctionDefinition","src":"1737:53:166","nodes":[],"body":{"id":82367,"nodeType":"Block","src":"1751:39:166","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82364,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1761:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82365,"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":82366,"nodeType":"ExpressionStatement","src":"1761:22:166"}]},"documentation":{"id":82361,"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":82362,"nodeType":"ParameterList","parameters":[],"src":"1748:2:166"},"returnParameters":{"id":82363,"nodeType":"ParameterList","parameters":[],"src":"1751:0:166"},"scope":82467,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82403,"nodeType":"FunctionDefinition","src":"2061:297:166","nodes":[],"body":{"id":82402,"nodeType":"Block","src":"2122:236:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82377,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82354,"src":"2145:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82378,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82357,"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":82376,"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":82379,"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":82380,"nodeType":"ExpressionStatement","src":"2132:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82381,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2180:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82382,"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":82383,"nodeType":"ExpressionStatement","src":"2180:22:166"},{"expression":{"arguments":[{"id":82385,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82371,"src":"2227:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82384,"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":82386,"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":82387,"nodeType":"ExpressionStatement","src":"2212:28:166"},{"expression":{"arguments":[{"id":82389,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82354,"src":"2269:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82388,"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":82390,"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":82391,"nodeType":"ExpressionStatement","src":"2250:30:166"},{"expression":{"arguments":[{"id":82393,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82371,"src":"2297:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82394,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82360,"src":"2311:20:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82395,"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":82396,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[82450],"referencedDeclaration":82450,"src":"2340:8:166","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":82397,"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":82392,"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":82400,"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":82401,"nodeType":"ExpressionStatement","src":"2291:60:166"}]},"documentation":{"id":82369,"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":82374,"kind":"modifierInvocation","modifierName":{"id":82373,"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":82372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82371,"mutability":"mutable","name":"initialOwner","nameLocation":"2089:12:166","nodeType":"VariableDeclaration","scope":82403,"src":"2081:20:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82370,"name":"address","nodeType":"ElementaryTypeName","src":"2081:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2080:22:166"},"returnParameters":{"id":82375,"nodeType":"ParameterList","parameters":[],"src":"2122:0:166"},"scope":82467,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82430,"nodeType":"FunctionDefinition","src":"2431:218:166","nodes":[],"body":{"id":82429,"nodeType":"Block","src":"2489:160:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82413,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82354,"src":"2512:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82414,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82357,"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":82412,"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":82415,"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":82416,"nodeType":"ExpressionStatement","src":"2499:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82417,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2547:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82418,"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":82419,"nodeType":"ExpressionStatement","src":"2547:22:166"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82421,"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":82422,"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":82420,"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":82423,"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":82424,"nodeType":"ExpressionStatement","src":"2579:23:166"},{"expression":{"arguments":[{"id":82426,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82354,"src":"2631:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82425,"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":82427,"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":82428,"nodeType":"ExpressionStatement","src":"2612:30:166"}]},"documentation":{"id":82404,"nodeType":"StructuredDocumentation","src":"2364:62:166","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":82407,"kind":"modifierInvocation","modifierName":{"id":82406,"name":"onlyOwner","nameLocations":["2462:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2462:9:166"},"nodeType":"ModifierInvocation","src":"2462:9:166"},{"arguments":[{"hexValue":"32","id":82409,"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":82410,"kind":"modifierInvocation","modifierName":{"id":82408,"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":82405,"nodeType":"ParameterList","parameters":[],"src":"2452:2:166"},"returnParameters":{"id":82411,"nodeType":"ParameterList","parameters":[],"src":"2489:0:166"},"scope":82467,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82440,"nodeType":"FunctionDefinition","src":"2814:84:166","nodes":[],"body":{"id":82439,"nodeType":"Block","src":"2896:2:166","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":82431,"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":82437,"kind":"modifierInvocation","modifierName":{"id":82436,"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":82435,"nodeType":"OverrideSpecifier","overrides":[],"src":"2877:8:166"},"parameters":{"id":82434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82433,"mutability":"mutable","name":"newImplementation","nameLocation":"2849:17:166","nodeType":"VariableDeclaration","scope":82440,"src":"2841:25:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82432,"name":"address","nodeType":"ElementaryTypeName","src":"2841:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2840:27:166"},"returnParameters":{"id":82438,"nodeType":"ParameterList","parameters":[],"src":"2896:0:166"},"scope":82467,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82450,"nodeType":"FunctionDefinition","src":"3172:83:166","nodes":[],"body":{"id":82449,"nodeType":"Block","src":"3229:26:166","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":82447,"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":82446,"id":82448,"nodeType":"Return","src":"3239:9:166"}]},"baseFunctions":[42727],"documentation":{"id":82441,"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":82443,"nodeType":"OverrideSpecifier","overrides":[],"src":"3204:8:166"},"parameters":{"id":82442,"nodeType":"ParameterList","parameters":[],"src":"3189:2:166"},"returnParameters":{"id":82446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82450,"src":"3222:5:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82444,"name":"uint8","nodeType":"ElementaryTypeName","src":"3222:5:166","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3221:7:166"},"scope":82467,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82466,"nodeType":"FunctionDefinition","src":"3419:93:166","nodes":[],"body":{"id":82465,"nodeType":"Block","src":"3478:34:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82461,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82453,"src":"3494:2:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82462,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82455,"src":"3498:6:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82460,"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":82463,"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":82464,"nodeType":"ExpressionStatement","src":"3488:17:166"}]},"documentation":{"id":82451,"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":82458,"kind":"modifierInvocation","modifierName":{"id":82457,"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":82456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82453,"mutability":"mutable","name":"to","nameLocation":"3441:2:166","nodeType":"VariableDeclaration","scope":82466,"src":"3433:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82452,"name":"address","nodeType":"ElementaryTypeName","src":"3433:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82455,"mutability":"mutable","name":"amount","nameLocation":"3453:6:166","nodeType":"VariableDeclaration","scope":82466,"src":"3445:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82454,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3432:28:166"},"returnParameters":{"id":82459,"nodeType":"ParameterList","parameters":[],"src":"3478:0:166"},"scope":82467,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":82340,"name":"Initializable","nameLocations":["1351:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42590,"src":"1351:13:166"},"id":82341,"nodeType":"InheritanceSpecifier","src":"1351:13:166"},{"baseName":{"id":82342,"name":"ERC20Upgradeable","nameLocations":["1370:16:166"],"nodeType":"IdentifierPath","referencedDeclaration":43207,"src":"1370:16:166"},"id":82343,"nodeType":"InheritanceSpecifier","src":"1370:16:166"},{"baseName":{"id":82344,"name":"ERC20BurnableUpgradeable","nameLocations":["1392:24:166"],"nodeType":"IdentifierPath","referencedDeclaration":43269,"src":"1392:24:166"},"id":82345,"nodeType":"InheritanceSpecifier","src":"1392:24:166"},{"baseName":{"id":82346,"name":"OwnableUpgradeable","nameLocations":["1422:18:166"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1422:18:166"},"id":82347,"nodeType":"InheritanceSpecifier","src":"1422:18:166"},{"baseName":{"id":82348,"name":"ERC20PermitUpgradeable","nameLocations":["1446:22:166"],"nodeType":"IdentifierPath","referencedDeclaration":43438,"src":"1446:22:166"},"id":82349,"nodeType":"InheritanceSpecifier","src":"1446:22:166"},{"baseName":{"id":82350,"name":"UUPSUpgradeable","nameLocations":["1474:15:166"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1474:15:166"},"id":82351,"nodeType":"InheritanceSpecifier","src":"1474:15:166"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":82339,"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":[82467,46243,44833,43438,43698,44416,44823,46898,42322,43269,43207,44875,46862,46836,43484,42590],"name":"WrappedVara","nameLocation":"1332:11:166","scope":82468,"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":82557,"exportedSymbols":{"ERC20BurnableUpgradeable":[43269],"ERC20PermitUpgradeable":[43438],"ERC20Upgradeable":[43207],"Initializable":[42590],"OwnableUpgradeable":[42322],"UUPSUpgradeable":[46243],"WrappedVara":[82556]},"nodeType":"SourceUnit","src":"74:3441:166","nodes":[{"id":82415,"nodeType":"PragmaDirective","src":"74:24:166","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82417,"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":82557,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":82416,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82419,"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":82557,"sourceUnit":42591,"symbolAliases":[{"foreign":{"id":82418,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42590,"src":"210:13:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82421,"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":82557,"sourceUnit":43208,"symbolAliases":[{"foreign":{"id":82420,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43207,"src":"307:16:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82423,"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":82557,"sourceUnit":43270,"symbolAliases":[{"foreign":{"id":82422,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43269,"src":"415:24:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82425,"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":82557,"sourceUnit":43439,"symbolAliases":[{"foreign":{"id":82424,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43438,"src":"551:22:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82427,"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":82557,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":82426,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"678:15:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82556,"nodeType":"ContractDefinition","src":"1323:2191:166","nodes":[{"id":82443,"nodeType":"VariableDeclaration","src":"1496:51:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1520:10:166","scope":82556,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82441,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":82442,"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":82446,"nodeType":"VariableDeclaration","src":"1553:46:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1577:12:166","scope":82556,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82444,"name":"string","nodeType":"ElementaryTypeName","src":"1553:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":82445,"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":82449,"nodeType":"VariableDeclaration","src":"1605:57:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1630:20:166","scope":82556,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82447,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":82448,"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":82457,"nodeType":"FunctionDefinition","src":"1737:53:166","nodes":[],"body":{"id":82456,"nodeType":"Block","src":"1751:39:166","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82453,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1761:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82454,"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":82455,"nodeType":"ExpressionStatement","src":"1761:22:166"}]},"documentation":{"id":82450,"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":82451,"nodeType":"ParameterList","parameters":[],"src":"1748:2:166"},"returnParameters":{"id":82452,"nodeType":"ParameterList","parameters":[],"src":"1751:0:166"},"scope":82556,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82492,"nodeType":"FunctionDefinition","src":"2061:297:166","nodes":[],"body":{"id":82491,"nodeType":"Block","src":"2122:236:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82466,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82443,"src":"2145:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82467,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82446,"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":82465,"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":82468,"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":82469,"nodeType":"ExpressionStatement","src":"2132:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82470,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2180:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82471,"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":82472,"nodeType":"ExpressionStatement","src":"2180:22:166"},{"expression":{"arguments":[{"id":82474,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82460,"src":"2227:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82473,"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":82475,"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":82476,"nodeType":"ExpressionStatement","src":"2212:28:166"},{"expression":{"arguments":[{"id":82478,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82443,"src":"2269:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82477,"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":82479,"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":82480,"nodeType":"ExpressionStatement","src":"2250:30:166"},{"expression":{"arguments":[{"id":82482,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82460,"src":"2297:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82483,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82449,"src":"2311:20:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82484,"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":82485,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[82539],"referencedDeclaration":82539,"src":"2340:8:166","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":82486,"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":82481,"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":82489,"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":82490,"nodeType":"ExpressionStatement","src":"2291:60:166"}]},"documentation":{"id":82458,"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":82463,"kind":"modifierInvocation","modifierName":{"id":82462,"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":82461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82460,"mutability":"mutable","name":"initialOwner","nameLocation":"2089:12:166","nodeType":"VariableDeclaration","scope":82492,"src":"2081:20:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82459,"name":"address","nodeType":"ElementaryTypeName","src":"2081:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2080:22:166"},"returnParameters":{"id":82464,"nodeType":"ParameterList","parameters":[],"src":"2122:0:166"},"scope":82556,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82519,"nodeType":"FunctionDefinition","src":"2431:218:166","nodes":[],"body":{"id":82518,"nodeType":"Block","src":"2489:160:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82502,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82443,"src":"2512:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82503,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82446,"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":82501,"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":82504,"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":82505,"nodeType":"ExpressionStatement","src":"2499:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82506,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2547:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82507,"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":82508,"nodeType":"ExpressionStatement","src":"2547:22:166"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82510,"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":82511,"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":82509,"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":82512,"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":82513,"nodeType":"ExpressionStatement","src":"2579:23:166"},{"expression":{"arguments":[{"id":82515,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82443,"src":"2631:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82514,"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":82516,"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":82517,"nodeType":"ExpressionStatement","src":"2612:30:166"}]},"documentation":{"id":82493,"nodeType":"StructuredDocumentation","src":"2364:62:166","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":82496,"kind":"modifierInvocation","modifierName":{"id":82495,"name":"onlyOwner","nameLocations":["2462:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2462:9:166"},"nodeType":"ModifierInvocation","src":"2462:9:166"},{"arguments":[{"hexValue":"32","id":82498,"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":82499,"kind":"modifierInvocation","modifierName":{"id":82497,"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":82494,"nodeType":"ParameterList","parameters":[],"src":"2452:2:166"},"returnParameters":{"id":82500,"nodeType":"ParameterList","parameters":[],"src":"2489:0:166"},"scope":82556,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82529,"nodeType":"FunctionDefinition","src":"2814:84:166","nodes":[],"body":{"id":82528,"nodeType":"Block","src":"2896:2:166","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":82520,"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":82526,"kind":"modifierInvocation","modifierName":{"id":82525,"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":82524,"nodeType":"OverrideSpecifier","overrides":[],"src":"2877:8:166"},"parameters":{"id":82523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82522,"mutability":"mutable","name":"newImplementation","nameLocation":"2849:17:166","nodeType":"VariableDeclaration","scope":82529,"src":"2841:25:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82521,"name":"address","nodeType":"ElementaryTypeName","src":"2841:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2840:27:166"},"returnParameters":{"id":82527,"nodeType":"ParameterList","parameters":[],"src":"2896:0:166"},"scope":82556,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82539,"nodeType":"FunctionDefinition","src":"3172:83:166","nodes":[],"body":{"id":82538,"nodeType":"Block","src":"3229:26:166","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":82536,"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":82535,"id":82537,"nodeType":"Return","src":"3239:9:166"}]},"baseFunctions":[42727],"documentation":{"id":82530,"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":82532,"nodeType":"OverrideSpecifier","overrides":[],"src":"3204:8:166"},"parameters":{"id":82531,"nodeType":"ParameterList","parameters":[],"src":"3189:2:166"},"returnParameters":{"id":82535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82534,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82539,"src":"3222:5:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82533,"name":"uint8","nodeType":"ElementaryTypeName","src":"3222:5:166","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3221:7:166"},"scope":82556,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82555,"nodeType":"FunctionDefinition","src":"3419:93:166","nodes":[],"body":{"id":82554,"nodeType":"Block","src":"3478:34:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82550,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82542,"src":"3494:2:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82551,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82544,"src":"3498:6:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82549,"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":82552,"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":82553,"nodeType":"ExpressionStatement","src":"3488:17:166"}]},"documentation":{"id":82540,"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":82547,"kind":"modifierInvocation","modifierName":{"id":82546,"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":82545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82542,"mutability":"mutable","name":"to","nameLocation":"3441:2:166","nodeType":"VariableDeclaration","scope":82555,"src":"3433:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82541,"name":"address","nodeType":"ElementaryTypeName","src":"3433:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82544,"mutability":"mutable","name":"amount","nameLocation":"3453:6:166","nodeType":"VariableDeclaration","scope":82555,"src":"3445:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82543,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3432:28:166"},"returnParameters":{"id":82548,"nodeType":"ParameterList","parameters":[],"src":"3478:0:166"},"scope":82556,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":82429,"name":"Initializable","nameLocations":["1351:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42590,"src":"1351:13:166"},"id":82430,"nodeType":"InheritanceSpecifier","src":"1351:13:166"},{"baseName":{"id":82431,"name":"ERC20Upgradeable","nameLocations":["1370:16:166"],"nodeType":"IdentifierPath","referencedDeclaration":43207,"src":"1370:16:166"},"id":82432,"nodeType":"InheritanceSpecifier","src":"1370:16:166"},{"baseName":{"id":82433,"name":"ERC20BurnableUpgradeable","nameLocations":["1392:24:166"],"nodeType":"IdentifierPath","referencedDeclaration":43269,"src":"1392:24:166"},"id":82434,"nodeType":"InheritanceSpecifier","src":"1392:24:166"},{"baseName":{"id":82435,"name":"OwnableUpgradeable","nameLocations":["1422:18:166"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1422:18:166"},"id":82436,"nodeType":"InheritanceSpecifier","src":"1422:18:166"},{"baseName":{"id":82437,"name":"ERC20PermitUpgradeable","nameLocations":["1446:22:166"],"nodeType":"IdentifierPath","referencedDeclaration":43438,"src":"1446:22:166"},"id":82438,"nodeType":"InheritanceSpecifier","src":"1446:22:166"},{"baseName":{"id":82439,"name":"UUPSUpgradeable","nameLocations":["1474:15:166"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1474:15:166"},"id":82440,"nodeType":"InheritanceSpecifier","src":"1474:15:166"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":82428,"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":[82556,46243,44833,43438,43698,44416,44823,46898,42322,43269,43207,44875,46862,46836,43484,42590],"name":"WrappedVara","nameLocation":"1332:11:166","scope":82557,"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/gear.rs b/ethexe/ethereum/src/abi/gear.rs index 5e78c38d15a..aaa560f27c6 100644 --- a/ethexe/ethereum/src/abi/gear.rs +++ b/ethexe/ethereum/src/abi/gear.rs @@ -16,10 +16,12 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use crate::abi::{Gear, utils::*}; -use ethexe_common::gear::*; +use crate::abi::{Gear, GearMirror, utils::*}; +use ethexe_common::{ToDigest, gear::*}; use gear_core::message::ReplyDetails; use gear_core_errors::{ReplyCode, SuccessReplyReason}; +use gprimitives::H256; +use sp_runtime::traits::Keccak256; // // // From Rust types to alloy // @@ -177,6 +179,13 @@ impl From for Gear::ReplyDetails { impl From for Gear::StateTransition { fn from(value: StateTransition) -> Self { + let value_claims: Vec<_> = value + .value_claims + .into_iter() + .map(|value_claim| H256(value_claim.to_digest().0)) + .collect(); + let value_claims_merkle_root = + binary_merkle_tree::merkle_root_raw::(value_claims); Self { actorId: actor_id_to_address_lossy(value.actor_id), newStateHash: h256_to_bytes32(value.new_state_hash), @@ -184,13 +193,13 @@ impl From for Gear::StateTransition { inheritor: actor_id_to_address_lossy(value.inheritor), valueToReceive: value.value_to_receive, valueToReceiveNegativeSign: value.value_to_receive_negative_sign, - valueClaims: value.value_claims.into_iter().map(Into::into).collect(), + valueClaimsMerkleRoot: h256_to_bytes32(value_claims_merkle_root), messages: value.messages.into_iter().map(Into::into).collect(), } } } -impl From for Gear::ValueClaim { +impl From for GearMirror::ValueClaim { fn from(value: ValueClaim) -> Self { Self { messageId: message_id_to_bytes32(value.message_id), diff --git a/ethexe/ethereum/src/abi/mod.rs b/ethexe/ethereum/src/abi/mod.rs index 879c4639f2c..efc2beade6c 100644 --- a/ethexe/ethereum/src/abi/mod.rs +++ b/ethexe/ethereum/src/abi/mod.rs @@ -22,7 +22,7 @@ mod gear; use alloy::sol; pub use gear_abi::Gear as GearLib; pub use middleware_abi::IMiddleware; -pub use mirror_abi::IMirror; +pub use mirror_abi::{Gear as GearMirror, IMirror}; pub use router_abi::{Gear, IRouter}; pub mod gear_abi { diff --git a/ethexe/ethereum/src/mirror/mod.rs b/ethexe/ethereum/src/mirror/mod.rs index ddb490e5ea9..2b4c58e8a16 100644 --- a/ethexe/ethereum/src/mirror/mod.rs +++ b/ethexe/ethereum/src/mirror/mod.rs @@ -33,6 +33,7 @@ use anyhow::{Result, anyhow}; use ethexe_common::{ Address, events::mirror::{ReplyEvent, StateChangedEvent, ValueClaimedEvent}, + gear::ValueClaim, }; pub use events::signatures; use events::{ @@ -229,7 +230,7 @@ impl Mirror { &self, claimed_id: MessageId, ) -> Result { - let builder = self.instance.claimValue(claimed_id.into_bytes().into()); + let builder = self.instance.claimValue_1(claimed_id.into_bytes().into()); let receipt = builder .send() .await? @@ -325,6 +326,42 @@ impl Mirror { Ok(receipt) } + pub async fn claim_value_with_proof( + &self, + state_hash: H256, + total_leaves: U256, + leaf_index: U256, + claim: ValueClaim, + proof: Vec, + ) -> Result { + self.claim_value_with_proof_and_receipt(state_hash, total_leaves, leaf_index, claim, proof) + .await + .map(|receipt| (*receipt.transaction_hash).into()) + } + + pub async fn claim_value_with_proof_and_receipt( + &self, + state_hash: H256, + total_leaves: U256, + leaf_index: U256, + claim: ValueClaim, + proof: Vec, + ) -> Result { + let builder = self.instance.claimValue_0( + abi::utils::h256_to_bytes32(state_hash), + abi::utils::u256_to_uint256(total_leaves), + abi::utils::u256_to_uint256(leaf_index), + claim.into(), + proof.into_iter().map(abi::utils::h256_to_bytes32).collect(), + ); + let receipt = builder + .send() + .await? + .try_get_receipt_check_reverted() + .await?; + Ok(receipt) + } + pub async fn owned_balance_top_up(&self, value: u128) -> Result { self.owned_balance_top_up_with_receipt(value) .await diff --git a/ethexe/node-loader/src/batch.rs b/ethexe/node-loader/src/batch.rs index 3ab6ecb9e5a..193b702059b 100644 --- a/ethexe/node-loader/src/batch.rs +++ b/ethexe/node-loader/src/batch.rs @@ -1286,11 +1286,8 @@ async fn parse_router_transitions( tracing::debug!(program = %actor_id, "Program exited"); } - let value_claim_ids: Vec<_> = tr - .valueClaims - .iter() - .map(|vc| MessageId::new(vc.messageId.0)) - .collect(); + // FIXME + let value_claim_ids = Vec::new(); let transitioned_messages: Vec<_> = tr .messages diff --git a/ethexe/sdk/src/mirror.rs b/ethexe/sdk/src/mirror.rs index e9fbe339c20..d62bf8571ed 100644 --- a/ethexe/sdk/src/mirror.rs +++ b/ethexe/sdk/src/mirror.rs @@ -21,6 +21,7 @@ use alloy::rpc::types::TransactionReceipt; use anyhow::{Context, Result, anyhow, ensure}; use ethexe_common::{ Address, SimpleBlockData, + gear::ValueClaim, gear_core::rpc::ReplyInfo, injected::{ AddressedInjectedTransaction, InjectedTransaction, InjectedTransactionAcceptance, Promise, @@ -356,6 +357,32 @@ impl<'a> Mirror<'a> { .await } + pub async fn claim_value_with_proof( + &self, + state_hash: H256, + total_leaves: U256, + leaf_index: U256, + claim: ValueClaim, + proof: Vec, + ) -> Result { + self.mirror_client + .claim_value_with_proof(state_hash, total_leaves, leaf_index, claim, proof) + .await + } + + pub async fn claim_value_with_proof_and_receipt( + &self, + state_hash: H256, + total_leaves: U256, + leaf_index: U256, + claim: ValueClaim, + proof: Vec, + ) -> Result { + self.mirror_client + .claim_value_with_proof_and_receipt(state_hash, total_leaves, leaf_index, claim, proof) + .await + } + pub async fn owned_balance_top_up(&self, value: u128) -> Result { self.owned_balance_top_up_with_receipt(value) .await diff --git a/ethexe/service/src/tests/mod.rs b/ethexe/service/src/tests/mod.rs index 80c73020197..87d19325b41 100644 --- a/ethexe/service/src/tests/mod.rs +++ b/ethexe/service/src/tests/mod.rs @@ -26,7 +26,7 @@ use crate::tests::utils::{ WaitForReplyTo, Wallets, init_logger, }; use alloy::{ - primitives::U256, + primitives::U256 as AlloyU256, providers::{Provider as _, WalletProvider, ext::AnvilApi}, }; use ethexe_common::{ @@ -38,7 +38,7 @@ use ethexe_common::{ mirror::{MessageEvent, ReplyEvent, StateChangedEvent, ValueClaimedEvent}, router::{AnnouncesCommittedEvent, ValidatorsCommittedForEraEvent}, }, - gear::{BatchCommitment, CANONICAL_QUARANTINE, MessageType}, + gear::{BatchCommitment, CANONICAL_QUARANTINE, MessageType, ValueClaim}, injected::{AddressedInjectedTransaction, InjectedTransaction, InjectedTransactionAcceptance}, mock::*, network::ValidatorMessage, @@ -60,7 +60,7 @@ use gear_core::{ message::{ReplyCode, SuccessReplyReason}, }; use gear_core_errors::{ErrorReplyReason, SimpleExecutionError, SimpleUnavailableActorError}; -use gprimitives::{ActorId, H160, H256, MessageId}; +use gprimitives::{ActorId, H160, H256, MessageId, U256}; use gsigner::secp256k1::{Secp256k1SignerExt, Signer}; use parity_scale_codec::{Decode, Encode}; use std::{ @@ -470,8 +470,6 @@ async fn mailbox() { let async_pid = res.program_id; - let receiver = env.new_observer_events(); - let wait_for_mutex_request_command_reply = env .send_message(async_pid, &demo_async::Command::Mutex.encode()) .await @@ -483,8 +481,7 @@ async fn mailbox() { log::info!("📗 Waiting for announce with PING message committed"); let (mut block, mut announce_hash) = (None, None); - receiver - .clone() + env.new_observer_events() .filter_map_block_synced_with_header() .find(|(event, block_data)| match event { BlockEvent::Mirror { @@ -637,24 +634,46 @@ async fn mailbox() { log::info!("📗 Claiming value for message {mid_expected_message_id}"); mirror.claim_value(mid_expected_message_id).await.unwrap(); - let mut claimed = false; - let announce_hash = - receiver - .filter_map_block_synced() - .find_map(|event| match event { - BlockEvent::Mirror { - actor_id, - event: MirrorEvent::ValueClaimed(ValueClaimedEvent { claimed_id, .. }), - } if actor_id == async_pid && claimed_id == mid_expected_message_id => { - claimed = true; - None - } - BlockEvent::Router(RouterEvent::AnnouncesCommitted(AnnouncesCommittedEvent( - ah, - ))) if claimed => Some(ah), - _ => None, - }) - .await; + let receiver = env.new_observer_events(); + + let announce_hash = receiver + .clone() + .filter_map_block_synced() + .find_map(|e| match e { + BlockEvent::Router(RouterEvent::AnnouncesCommitted(AnnouncesCommittedEvent(ah))) => { + Some(ah) + } + _ => None, + }) + .await; + + let state_hash = mirror.query().state_hash().await.unwrap(); + let sender_address = env.ethereum.provider().default_signer_address(); + mirror + .claim_value_with_proof( + state_hash, + 1.into(), + U256::zero(), + ValueClaim { + message_id: mid_expected_message_id, + destination: sender_address.into(), + value: 0, + }, + vec![], + ) + .await + .unwrap(); + + let claimed = receiver + .filter_map_block_synced() + .find_map(|event| match event { + BlockEvent::Mirror { + actor_id, + event: MirrorEvent::ValueClaimed(ValueClaimedEvent { claimed_id, .. }), + } if actor_id == async_pid && claimed_id == mid_expected_message_id => Some(true), + _ => None, + }) + .await; assert!(claimed, "Value must be claimed"); let state_hash = mirror.query().state_hash().await.unwrap(); @@ -759,8 +778,8 @@ async fn value_reply_program_to_user() { assert_eq!(local_balance, 0); let sender_address = env.ethereum.provider().default_signer_address(); - let measurement_error: U256 = (ETHER / 50).try_into().unwrap(); // 0.02 ETH for gas costs - let default_anvil_balance: U256 = (10_000 * ETHER).try_into().unwrap(); + let measurement_error: AlloyU256 = (ETHER / 50).try_into().unwrap(); // 0.02 ETH for gas costs + let default_anvil_balance: AlloyU256 = (10_000 * ETHER).try_into().unwrap(); let balance = env .ethereum .provider() @@ -883,6 +902,27 @@ async fn value_send_program_to_user_and_claimed() { piggy_bank.claim_value(mailboxed_msg_id).await.unwrap(); + env.new_observer_events() + .filter_map_block_synced() + .find(|e| matches!(e, BlockEvent::Router(RouterEvent::BatchCommitted { .. }))) + .await; + + let state_hash = piggy_bank.query().state_hash().await.unwrap(); + piggy_bank + .claim_value_with_proof( + state_hash, + 1.into(), + U256::zero(), + ValueClaim { + message_id: mailboxed_msg_id, + destination: sender_address.into(), + value: VALUE_SENT, + }, + vec![], + ) + .await + .unwrap(); + receiver .filter_map_block_synced() .find(|e| { @@ -893,8 +933,8 @@ async fn value_send_program_to_user_and_claimed() { }) .await; - let measurement_error: U256 = (ETHER / 50).try_into().unwrap(); // 0.02 ETH for gas costs - let default_anvil_balance: U256 = (10_000 * ETHER).try_into().unwrap(); + let measurement_error: AlloyU256 = (ETHER / 50).try_into().unwrap(); // 0.02 ETH for gas costs + let default_anvil_balance: AlloyU256 = (10_000 * ETHER).try_into().unwrap(); let balance = env .ethereum .provider() @@ -1020,6 +1060,27 @@ async fn value_send_program_to_user_and_replied() { .await .unwrap(); + env.new_observer_events() + .filter_map_block_synced() + .find(|e| matches!(e, BlockEvent::Router(RouterEvent::BatchCommitted { .. }))) + .await; + + let state_hash = piggy_bank.query().state_hash().await.unwrap(); + piggy_bank + .claim_value_with_proof( + state_hash, + 1.into(), + U256::zero(), + ValueClaim { + message_id: mailboxed_msg_id, + destination: sender_address.into(), + value: VALUE_SENT, + }, + vec![], + ) + .await + .unwrap(); + receiver .filter_map_block_synced() .find(|e| { @@ -1030,8 +1091,8 @@ async fn value_send_program_to_user_and_replied() { }) .await; - let measurement_error: U256 = (ETHER / 50).try_into().unwrap(); // 0.02 ETH for gas costs - let default_anvil_balance: U256 = (10_000 * ETHER).try_into().unwrap(); + let measurement_error: AlloyU256 = (ETHER / 50).try_into().unwrap(); // 0.02 ETH for gas costs + let default_anvil_balance: AlloyU256 = (10_000 * ETHER).try_into().unwrap(); let balance = env .ethereum .provider() @@ -1667,7 +1728,7 @@ async fn many_validators_repeated_ping() { let mut env = TestEnv::new(config).await.unwrap(); log::info!("📗 Top-up balances for all validator accounts"); - let validator_balance: U256 = (10_000 * ETHER).try_into().unwrap(); + let validator_balance: AlloyU256 = (10_000 * ETHER).try_into().unwrap(); for validator in &env.validators { env.provider .anvil_set_balance(validator.public_key.to_address().into(), validator_balance) diff --git a/utils/gear-workspace-hack/Cargo.toml b/utils/gear-workspace-hack/Cargo.toml index d148da49993..9f11174a2e5 100644 --- a/utils/gear-workspace-hack/Cargo.toml +++ b/utils/gear-workspace-hack/Cargo.toml @@ -214,7 +214,7 @@ branch = "gear-polkadot-stable2409-wasm32v1-none" features = ["test-helpers"] ### BEGIN HAKARI SECTION -[dependencies] +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] aes = { version = "0.8", default-features = false, features = ["zeroize"] } ahash = { version = "0.8" } alloy = { version = "2", features = ["kzg", "node-bindings", "provider-anvil-api", "provider-ws", "rpc-types-beacon", "rpc-types-eth", "signer-mnemonic"] } @@ -420,7 +420,7 @@ sp-crypto-hashing-c65f7effa3be6d31 = { package = "sp-crypto-hashing", version = sp-externalities = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } sp-genesis-builder = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } sp-inherents = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } -sp-io = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", features = ["disable_oom", "disable_panic_handler"] } +sp-io = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", features = ["disable_allocator", "disable_oom", "disable_panic_handler"] } sp-keyring = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } sp-keystore = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } sp-metadata-ir = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", default-features = false, features = ["std"] } @@ -486,7 +486,7 @@ wasmtime-runtime = { version = "8", default-features = false, features = ["async winnow = { version = "0.7" } zeroize = { version = "1", features = ["derive", "std"] } -[build-dependencies] +[target.'cfg(not(target_arch = "wasm32"))'.build-dependencies] aes = { version = "0.8", default-features = false, features = ["zeroize"] } ahash = { version = "0.8" } alloy = { version = "2", features = ["kzg", "node-bindings", "provider-anvil-api", "provider-ws", "rpc-types-beacon", "rpc-types-eth", "signer-mnemonic"] } @@ -706,7 +706,7 @@ sp-debug-derive = { git = "https://github.com/gear-tech/polkadot-sdk.git", branc sp-externalities = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } sp-genesis-builder = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } sp-inherents = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } -sp-io = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", features = ["disable_oom", "disable_panic_handler"] } +sp-io = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", features = ["disable_allocator", "disable_oom", "disable_panic_handler"] } sp-keyring = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } sp-keystore = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none" } sp-metadata-ir = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", default-features = false, features = ["std"] } @@ -779,7 +779,7 @@ errno = { version = "0.3" } gimli = { version = "0.28" } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", default-features = false, features = ["client-proxy"] } -itertools-a6292c17cd707f01 = { package = "itertools", version = "0.11" } +itertools-594e8ee84c453af0 = { package = "itertools", version = "0.13", default-features = false, features = ["use_std"] } libc = { version = "0.2", default-features = false, features = ["extra_traits"] } miniz_oxide = { version = "0.8", default-features = false, features = ["simd", "with-alloc"] } mio = { version = "1", features = ["net", "os-ext"] } @@ -803,7 +803,7 @@ errno = { version = "0.3" } gimli = { version = "0.28" } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", default-features = false, features = ["client-proxy"] } -itertools-a6292c17cd707f01 = { package = "itertools", version = "0.11" } +itertools-594e8ee84c453af0 = { package = "itertools", version = "0.13", default-features = false, features = ["use_std"] } libc = { version = "0.2", default-features = false, features = ["extra_traits"] } miniz_oxide = { version = "0.8", default-features = false, features = ["simd", "with-alloc"] } mio = { version = "1", features = ["net", "os-ext"] } @@ -828,7 +828,7 @@ errno = { version = "0.3" } gimli = { version = "0.28" } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", default-features = false, features = ["client-proxy"] } -itertools-a6292c17cd707f01 = { package = "itertools", version = "0.11" } +itertools-594e8ee84c453af0 = { package = "itertools", version = "0.13", default-features = false, features = ["use_std"] } libc = { version = "0.2", default-features = false, features = ["extra_traits"] } miniz_oxide = { version = "0.8", default-features = false, features = ["simd", "with-alloc"] } mio = { version = "1", features = ["net", "os-ext"] } @@ -851,7 +851,7 @@ errno = { version = "0.3" } gimli = { version = "0.28" } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", default-features = false, features = ["client-proxy"] } -itertools-a6292c17cd707f01 = { package = "itertools", version = "0.11" } +itertools-594e8ee84c453af0 = { package = "itertools", version = "0.13", default-features = false, features = ["use_std"] } libc = { version = "0.2", default-features = false, features = ["extra_traits"] } miniz_oxide = { version = "0.8", default-features = false, features = ["simd", "with-alloc"] } mio = { version = "1", features = ["net", "os-ext"] } @@ -875,7 +875,7 @@ errno = { version = "0.3" } gimli = { version = "0.28" } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", default-features = false, features = ["client-proxy"] } -itertools-a6292c17cd707f01 = { package = "itertools", version = "0.11" } +itertools-594e8ee84c453af0 = { package = "itertools", version = "0.13", default-features = false, features = ["use_std"] } libc = { version = "0.2", default-features = false, features = ["extra_traits"] } miniz_oxide = { version = "0.8", default-features = false, features = ["simd", "with-alloc"] } nom = { version = "7" } @@ -897,7 +897,7 @@ errno = { version = "0.3" } gimli = { version = "0.28" } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", default-features = false, features = ["client-proxy"] } -itertools-a6292c17cd707f01 = { package = "itertools", version = "0.11" } +itertools-594e8ee84c453af0 = { package = "itertools", version = "0.13", default-features = false, features = ["use_std"] } libc = { version = "0.2", default-features = false, features = ["extra_traits"] } miniz_oxide = { version = "0.8", default-features = false, features = ["simd", "with-alloc"] } nom = { version = "7" }